xcode靜態庫調試


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM