[工程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