Carthage 使用与让项目支持

使用Carthage

1、先进入到项目所有的文件夹

$ cd 项目路径

2、创建一个空的Carthage文件

$ touch Cartfile

3、编辑cartfile文件,添加要依赖的框架

github "https://github.com/AFNetworking/AFNetworking"

4、保存并关闭cartfile文件,进行安装

$ carthage update --no-use-binaries --platform ios

安装完之后根目录会出现一个叫Carthage的文件夹,里面包含Build和Checkouts两个文件夹。

Build:iOS路径下的就是framework包,需要自行引用进来。

Checkouts:是从Github上获取来的源码,所以理论上来说你在这个文件夹里对源码进行任何的修改,再次执行 carthage build 就会根据这里的源码打包出相应的framework出来。但需要注意的是当每次执行carthage update后这里的源码又被覆盖了。所以你有特别需要修改的地方可以加例外防止覆盖!!!! 重要

5、项目Target -> Build Setting -> Search Paths -> Framework Search Paths添加。这一步,感觉【carthage update】之后,默认会有了,有的话跳到第6步。

$(PROJECT_DIR)/Carthage/Build/iOS

6、项目Target -> Build Phases -> '+' -> New Run Script Phase, 添加脚本

/usr/local/bin/Carthage copy-frameworks

同时要注意,添加【input Files】,如:$(SRCROOT)/Carthage/Build/iOS/AFNetworking.framework 。

  

如果不添加【input Files】,会报 dyld: Library not loaded 出错

不想通过【input Files】的方式添加路径的话,可以通过【Copy File】的方式来添加,项目Target -> Build Phases -> '+' -> New Copy File Phase, 添加Copy文件

  

7、项目Target -> General最底下的Linked Frameworks and Libraries里手动添加【Add Other...】需要用的framework.

碰到的问题

1、dyld: Library not loaded 出错

dyld: Library not loaded: @rpath/CarthageTestSDK.framework/CarthageTestSDK

  Referenced from: /Users/vipshop/Library/Developer/CoreSimulator/Devices/948C970C-2338-4BCB-A62D-E28A71C7A47B/data/Containers/Bundle/Application/AB8C53FC-9779-44EA-8E23-23E1E63C6E89/PodTest.app/PodTest

  Reason: image not found

注意,Copy File 默认是Resources,需要改为framework

 

参考:

https://www.jianshu.com/p/7a0634e14332

https://www.jianshu.com/p/bf263c596538

https://www.jianshu.com/p/52dff4cef8a2

https://www.jianshu.com/p/6802eeb3efe7

猜你喜欢

转载自www.cnblogs.com/jys509/p/10334527.html