[工程1]:静态库工程,用来生成xxx.a
[工程2]:项目工程,需要引入静态库xxx.a
工程2引入静态库的方法是将工程1生成的xxx.a和include头文件目录,加入到工程2中。
而如果需要在工程2中调试工程1的代码,则需要按照如下步骤操作:
(1)工程1编译成功后关闭,然后将工程1.xcodeproj文件,直接拖入工程2中;(同一个工程只能在一个地方打开,工程1需要关闭,不然在工程2中会无法展开)
(2)设置LinkBinaryWithLibraries属性:在BuildPhases/LinkBinaryWithLibraries下加入xxx.a;
(3)设置头文件搜索目录:BuildSettings/Search Paths/User Header Search Paths中添加工程1的目录,直接拖,然后选择recursive;
(4)然后便可以断点调试...
查看.a支持的架构:
lipo -info xxx.a
Xcode静态库不向下兼容的问题:
打包静态库时,Build Settings 中 Link Frameworks Automatically 把默认Yes 改成 No! 静态库就不会自动链接Metal了。
注意静态库文件的版本(4种):
1.真机-Debug版本
2.真机-Release版本
3.模拟器-Debug版本
4.模拟器-Release版本
小结:
1.编译静态库:项目->Build Phases->Copy File->添加头文件
2.模拟器编译时,挑选高版本(向下兼容,低版本不能在高版本运行)
3.静态库分真机版本和模拟器版本(必须在对应的版本运行)
4.合并真机版本和模拟器版本(常用)
lipo -create 真机.a 模拟器.a -output 结果.a
合并版本更大,开始时使用方便(所以可以开发时使用合并版本,发布时,使用真机版本)
5.release版本和debug版本:
debug版本:调试版本,没有任何优化,也就是说各种错误信息,都将抛出和检测,相对来说性能低一点,但是方便调试
release版本:发布版本,进行了优化,执行效率更高
提醒:实际开发当中,项目完成后,在debug版本上没有问题了,一定要去release版本上调试一下,否则也许可能发生一些bug。
参考链接:https://www.cnblogs.com/richard-youth/p/4856841.html