IOS::.a的產生,以及模擬器和真機.a 的合并

來源:互聯網
上載者:User

標籤:

  • 首先來談談為何要使用.a檔案 Objective-c語言有.h .m 檔案組成。靜態庫可以將 .m檔案封裝成一個.a檔案,第三方應用程式只需要拿到這個.a檔案和代碼對應的.h檔案即可使用靜態庫中封裝的方法。IOS靜態庫適合去製作第三方提供的SDK。第一步1.首先建立一個新的工程,選擇Framework
    &:,在選擇Cocoa Touch Static Library 工程名自己定義

    BB2ECA5B-8795-4ECA-88AF-D2FB0F8BA382.png
    2.接下來你會看到自動產生.h和.m檔案 可以在.m檔案中寫你要的代碼

    F1898D4B-A084-488B-8170-A8DE5682136B.png
    3.我們來建立一個簡單的代碼
    .h檔案如下

    D8EE5B3D-A2B4-4CFC-AF6D-1B31CB1BE250.png
    .m檔案如下

1560D4FD-1030-4643-AA44-7070C028D2D3.png


4.接下來就是編譯產生.a檔案了
快速鍵(command+B)選中真機編譯和選中類比機編譯對應產生的連個.a檔案一個是真機的一個是類比機的


5AB668DE-A882-4EA5-B3AA-F7C67FB650B7.png

這時候去資產庫裡尋找編譯產生的.a檔案
找到 前往 然後 按著 option 快速鍵 你會看到 資產庫 點擊




998F053B-CD9A-455C-8B88-CF0A72B7C8B7.png

看到Release-iphoneos 和Release-iphonesimulator 裡邊的.a檔案


5AB668DE-A882-4EA5-B3AA-F7C67FB650B7.png


4.接下來就是將你產生的.a檔案引入到你想加入的工程中


4FF87073-D14F-4D6D-964A-78A59B155743.png


引入方法:直接將你所看到的include檔案夾中所有的.h檔案和下邊對應的.a檔案直接拖到你的工程中 千萬注意中的三個選項勾選


FB518732-A5E0-419E-8A92-8B07803A83C4.png
D5B5F50F-5A90-48C1-B669-DE1F8E5B740B.png


5.添加成功後就可以直接使用了 但是需要注意的是 如果你是選擇模擬器編譯產生的.a檔案那麼在真機啟動並執行時候是會報錯的 所以為了可以使用真機和模擬器都可以使用.a檔案可以合并成為一個.a檔案 使用終端合成具體方法如下:
ZXYdeMacBook-Pro:~zxy$ lipo -create 模擬器.a(路徑)    真機.a(路徑)    -output 可以把模擬器的.a複製一份重新命名.a 
這樣,就可以合并成一個通用的靜態庫,唯一的缺點是體積要大一點相對於真機和模擬器兩個的總大小 之後將這個靜態庫拖到工程中即可

------------分割線------
由於看到各位提出的問題在iphones 4s 和iphone 5上無法使用的問題後來查閱各種資料找到答案如下:
原因是因為靜態庫少了4S~5:i386 對應的cpu架構
如所示:
在 cd 到資產庫你的.a 檔案所在的路徑 然後使用如下命令查看:
lipo - infor *.a
顯示的結果如


3EF5E4D6-69FC-4E68-A64D-DF8A93F5EE45.png

只需要到你們的.a工程中找到如的Debug 將Yes 改成NO即可 然後重新 commond + B 進行重新編譯 選擇所有的模擬器進行編譯 好了 之後再接著你上班的步驟重新愉快的來一遍問題就ok了!!!

 

IOS::.a的產生,以及模擬器和真機.a 的合并

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.