ios9.2 之靜態庫

剛升級Xcode7.2,用起來很是不習慣.前幾天打包靜態庫.a文件時就遇到了問題: 

1.把Debug-iphonesimulator 裏的.a文件以及.h文件拖拽到項目中,用模擬器編譯時,選擇iPhone5s及以上都正常,但iPhone5及以下就出現了以下錯誤,

用 lipo -info [文件路徑]  :顯示靜態庫文件的架構類型, 只有 x86_64 ,而沒有 i386 .  記得當時打包爲.a文件時,選擇模擬器的 IOS Simulators是iPhone 6s plus ,如果選擇iPhone5 及以下,結果恰恰相反(只有i386,而沒有x86_64).  糾結這個問題好久,查看了很多資料都沒提到.最終在一個國外網站看到有人已經解決,如下.

解決方式一定要把Build Active Architecture only改爲NO,如下:


下面簡單來說一下靜態庫的製作:

1.選擇FrameWork & Library 下的 "Cocoa Touch Static Library"


2.輸入靜態庫名稱

3.添加需要打包的庫資源,要實現的方法,屬性 ,邏輯處理好

4.選擇需要暴露出來的.h文件,.m文件會自動編譯到.a文件中 


點擊+號,添加 .h文件



5.要把Build Active Architecture only改爲NO


6. 選擇真機設備,然後Command + B編譯,libStaticTest.a文件會從紅色變爲黑色 

7.選擇模擬器,然後Command + B編譯,模擬器和真機環境下用的.a文件是分開的 

8.右擊"show in Finder",查看製作好的.a文件. 



注:  1).Debug-iphoneos 文件夾裏面的東西使用在真機上    

2).Debug-iphonesimulator 文件夾裏面的東西是在模擬器運行的.

9.合併兩個文件(不是必須)  如果想讓一個.a文件能同時用在真機和模擬器上,需要進行合併

在終端輸入指令:lipo -create [文件路徑1] [文件路徑2] -output [生成文件路徑/XXX.a]

注:   lipo -info [文件路徑]  :顯示靜態庫文件的架構類型


花了大半個小時寫下這篇博客,希望對不理解的攻城獅有所幫助.







在終端輸入指令:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章