解決方法:利用命令列語句
1.切換路徑,到products目錄下
2.合併靜態庫
這句命令列理解起來並不難,我大體說一下,lipo -create 要合併的靜態庫1 要合併的靜態庫2 -output 合併後的靜態庫檔名,注意,預設儲存到當前目錄下。
這樣合併完的靜態庫就搞好了,只要把lib中的靜態庫替換成這個staticdemo.a的靜態庫,然後拖入你的工程中就可以隨意用了。不過,由於是合併的靜態庫,大小肯定並比合併之前的大,會讓你的專案也跟著變大,所以在真實專案要打包的時候最好還是根據需求來,這裡只是告訴大家這麼乙個辦法可以解決,自己平常可以用。
然後在分別在模擬器和真機下command+b一下,就可以生成了。生成後顯示如下圖:
release的用法和debug的基本一致。那麼他們兩個有什麼區別呢???
比較正經的說法是:
除錯版本會包含完整的符號資訊,不會對**進行優化。
發布版本不會包含完整的符號資訊,**是會進行優化的。
比較通俗的說法是:除錯版本會把你程式中的nslog這樣的列印語句也會執行,而發布版本就不會。
現在我們command+r執行一下,會出現兩個錯誤。
怎麼解決呢?(解決完就可以除錯我們的靜態庫函式了)
很簡單,只要配置一下就好了,如圖:
加完這兩項就真的ok啦!
.framework和.a的區別就是.framework不需要你手動將.h和bundle拖到你的資料夾裡,會自動生成。
打包靜態庫
參考 1 首先生成模擬器下地.a靜態庫,通過命令lipo info libtest.a 可知其architectures in the fat file libtest.a are i386 x86 64 2 再生成device 真機 環境下地.a靜態庫,通過命令lipo info libtest....
打包靜態庫,合併靜態庫
ios靜態庫 a 和framework 合併靜態庫 1,開啟終端,輸入lipo create release iphoneos libsbjson.a release iphonesimulator libsbjson.a output combine libsbjson.a 其中release i...
手動打包 a靜態庫
1.新建.a靜態庫工程 2.實現需要打包的類 3.編譯靜態庫 沒有編譯時是紅色,編譯成功後為黑色 當你選擇編譯器為模擬器時,編譯出來的就是模擬器版本.a靜態庫 當你選擇編譯器為裝置時,編譯出來的就是真機版本.a靜態庫 這時候就可以分別適配真機或者模擬器靜態庫了 但是為了方便我們通常會將兩個版本綜合到...