方法一:直接复制所有源文件到项目中
这种方法就是把第三方类库的所有源文件复制到项目中,直接把所有.h和.m文件拖到XCode项目中即可。
注意:
1. 如果第三方类库引用了一些系统自带类库,那么在项目中还需要额外引用那些类库。
2. 如果当前的项目启用了ARC,而引用的第三方类库未使用ARC,那还需要在项目信息的Targets – Build Parses
里找到第三方类库的.m文件,并为它们加上-fno-objc-arc标记。
3. 对于在未启用ARC的项目用引用使用了ARC的第三方类库,则需要为第三方类库的.m文件加上-fobjc-arc标记。
另外,在源代码中可以通过一个编译器指令__has_feature(objc_arc)来检测项目是否使用了ARC,
具体见http://clang.llvm.org/docs/LanguageExtensions.html#langext-has-feature-has-extension。
方法二:引用.xcodeproj生成静态链接库并引用
首先,将要引用的静态库及头文件拷贝到该项目的文件路径下,然后,在项目的Targets – Summary – Linked Frameworks and Libraries或者在Targets – Build Phases – Link Binary With Libraries添加第三方类库生成的静态链接库引用。接着,还需要在Targets – Build Settings – Search Paths的User
Header Search Paths参数中加入第三方类库的头文件路径,可以是绝对路径如:/Users/libpath,也可以是相对路径(相对于当前项目文件夹)如:../**。通常是设置为:” $(PROJECT_DIR)/usr “ (其中usr是项目下的自建的文件夹)。网上说有很多拖.xcodeproj文件的,很多网上的项目也有.xcodeproj,而且是红色的,笔者感觉有的.xcodeproj 下有很多东西,全部引进来,太冗余了,没必要。
注意:
1. 如果第三方类库封装了一些资源在.bundle文件里,那么.bundle文件需要和.xcodeproj一起拖到项目中。
2. 有些静态链接库引用进来可能还需要增加一些标记,在Targets – Build Settings – Linking的Other Linker Flags参数中增加:-Objc, –all_load这一类标记。
3. 当前项目和第三方类库同时使用了另外的一些第三方类库,这个时候还需要额外做一些处理才能成功编译:在引用的第三方类库的.xcodeproj项目
– Targets – Build Phases中的Compile Sources和Copy Headers把重复的.m和.h文件移除掉。
4. 第三方类库引用的一些系统自带类库,如果项目中没有引用,也可能会引起编译错误,这时还需要在项目中引用第三方类库引用的一些系统自带类库。
比如:第三方类库引用了QuartzCore.framework,而项目中未引用QuartzCore.framework则可能引起编译错误,就需要在项目中也引用QuartzCore.framework。
方法三:借助Cocoapods 管理第三方
当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。
CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。
cocoapods的详细使用见:
http://code4app.com/article/cocoapods-install-usage
http://mobile.51cto.com/iphone-407056.htm