iOS SDK封裝

來源:互聯網
上載者:User

標籤:

一.framework封裝

1、建立iOS->Framework & Library->Cocoa Touch Framework

2、在PROJECT->Deployment Target->iOS Deployment Target選擇你需要支援的最低系統。

同樣的操作在TARGETS中,Deployment Info->Deployment Target

3、動態庫可以分開發布,在運行時尋找並存入記憶體,但蘋果只允許他自己用,到iOS8以後才開放給開發人員。因此,我需要將Dynamic Framework更換為Static Library靜態模式。設定路徑為Build Settings->Linking->Mach-O Type->Static Library

4、這樣打包的framework依然有問題,如果你用了Category,別人在用你的framework時會發生崩潰。這時別人在引用時需要在工程中other linker flags中添加-objC如果依然有問題,再添加-all_load。

5、終於編譯成功,但發現很多關於符號表的警告,這時需要將Generate Debug Symbols設定為NO即可關閉符號表警告。

6、但是我需要支援bitcode,以上設定後並不能使framework支援bitcode,因此還需要進行額外的設定一個命令讓其支援bit code。在TAGETS的Build setting中搜尋Other C Flags,添加命令“-fembed-bitcode”。同樣的設定在PROJECT中。如果不進行以上操作。別人在整合你的framework時可以編譯,亦可以真機測試。唯獨在打包時會發出警告並打包失敗。警告為framework不支援bitcode!

7、無論SDK還是Framework都需要暴露公用的標頭檔以供使用者讀取和。在TARGETS->Build Phases->Headers裡面,有三種類別。Public(公用的),這裡存放供其他人查看的header。Private(私人的)這裡存放私人的Header,以上兩個Headers存放位置都會暴露出來,所有人可以查看。有些Header是不想給別人看到的。這種header放在第三個類Project中。


8、打包。Edit Scheme->Build Configuration->選為Release然後Run即可.
二.a封裝製作 .a

1、建立項目-> 選擇 “Cocoa Touch Static Library”




2、選擇需要暴露出來的 .h 檔案, .m 檔案會自動編譯到 .a 檔案中,把需要暴露的標頭檔添加到public下


選擇真機裝置,然後 Command+B 編譯, sdk.a 檔案從紅色變為黑色

選擇模擬器,依然 Command+B ,模擬器和真機環境下用的 .a 檔案是分開的

右擊 “Show In Finder” ,查看製作好的 .a 檔案


  • Debug-iphoneos 檔案夾裡面的東西是用在真機上的

  • Debug-iphonesimulator 檔案夾裡面的東西是用在模擬器上的

  • 如果 Scheme 是 Release 模式,產生的檔案夾就以 Release 開頭

如果想讓一個 .a 檔案能同時用在真機和模擬器上,需要進行合并

在終端輸入指令

lipo -create  Debug-iphoneos/真機路徑/sdk.a  Debug-iphonesimulator/模擬器路徑/sdk.a -output 案頭/自己弄過路徑/sdk.a


通過 lipo –info sdk.a 可以查看 .a 的類型(模擬器還是真機)



iOS SDK封裝

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.