當前位置:首頁 » 編程軟體 » ios編譯靜態庫

ios編譯靜態庫

發布時間: 2023-08-13 14:40:58

㈠ ios平台下live555靜態庫的編譯及打包成.a文件

因為你執行的是./genMakefiles iphoneos ,所以得到的.a文件只支持真機環境下,同理執行./genMakefiles iphone-simulator,得到的是支持模擬器環境下的.a文件,編譯結束最終得到支持真機和模擬器下的四個.a文件,如下圖:

如何打包成一個靜態庫.a文件,請參考 http://blog.csdn.net/qq_26968709/article/details/51164104

如果需要打包好的庫文件,直接下面留言。

㈡ iOS 靜態庫和動態庫打包framework流程(純swift版/swift、OC混編版)

選擇 iOS -- Framework&Library , 點擊 next

如果打包文件中使用了第三方庫,建議pod管理,並告知用戶使用pod安裝,避免用戶重復導入。跟平時開發邏輯一樣,打開 .xcworkspace 工程。

操作完之後工程目錄顯示

把打包需要的文件添加到項目中。 如果想要這個類或類裡面的方法被外面使用,需要配合pubic修飾供外面使用

由於以上獲取的framework只能在對應的版本上運行(即真機只能在設備上運行模擬器版本只能在模擬器上面運行使用),所以需要合並framework版本。
合並framework版本:
sudo lipo -create (此處請填寫真機AppVest文件路徑) (此處填寫模擬器AILLSDK文件路徑) -output 自定義合成文件存儲路徑(合成文件的名字AILLSDK)

因為真機版本和模擬器版本的framework都存在arm64架構,導致架構重復,不出意外,會提示合並失敗。如下

處理合並失敗的問題

最後,將 XX.framework(真機或者模擬器framework都可)文件夾 拷貝出來,替換AILLSDK(本文使用的)為剛才合並的新文件。
查看替換後的framework支持全部真機模擬器架構。

我在合並binary文件之後,僅拷貝出 Release-iphoneos 文件夾下的 XXX.framework ,並替換掉AILLSDK二進制文件。導入項目中使用模擬器運行,報錯,顯示找不到架構。

解決方案

拷貝所有的moles到

再替換掉AILLSDK二進制文件,導入項目,如果framework中內含第三方庫,需要在所在的工程中使用pod載入,否則會提示編譯失敗。
至此,編譯成功。🎉🎉🎉🎉🎉

不管是在framework封裝的內部,內部swift類調用內部的OC類,還是內部的OC類使用內部的swift類,還是外部工程swift類使用framework內部OC類,還是外部工程OC類使用framework內部swift類。原理是一致的,以下來介紹下:

在 AILLSDK.h(你自己創建framework時候生成的.h文件) 中添加import導入
#import <AILLSDK/OC類名.h>

在oc的 .m 或 .h 文件中,導入 #import <AILLSDK/AILLSDK-Swift.h> , 也就是 你自己framework名-Swift.h

㈢ ios未使用的.a如何編譯進app

新建一個iOS的空項目:這個非常的簡單就不說了,然後建立一個要使用的庫文件:

然後添加一個靜態庫的工程,這個工程就是你靜態庫函數,你可以在裡面寫任何你需要的函數:

現在如果你要編譯原來的TestUseLib工程的時候是編譯不過去的,你需要添加的地方有幾個:圖片文件上傳不了描述一下:

選擇工告謹程文件(不是庫文件)在targets下選擇工程的一個target

然後在Build Phases列中設置:Target Dependencies加上那個庫工程,以及在
Link Binary with Libraries加上那個庫工程的庫文件(.lib)

同時設置.h文件路徑:

在build Setting列中的Search Paths下的header Search Paths加上頭文件的查找路徑:

你可以寫絕對路徑,但是這樣襪槐基不好,只能在自己的機器上運行,到別人的機器上去了就會有問題:

$(SRCROOT)這個東西表示工程的根路徑,其實也就是你在建立工程的時候選擇的那個路徑。明滾
這就是靜態庫的使用。

如果你現在需要引用別人的一個.a庫,那就更加簡單了,你只需要將.a文件和.h文件放到你的工程目錄下,然後將.a文件與.h文件拖動到xcode的工程中就可以了。

熱點內容
phpposthtml 發布:2025-02-04 21:37:46 瀏覽:87
最新asp源碼 發布:2025-02-04 21:17:33 瀏覽:570
讓linux死機 發布:2025-02-04 20:48:08 瀏覽:141
單方塊生存伺服器里如何獲取岩漿 發布:2025-02-04 20:48:07 瀏覽:785
快速指數演算法 發布:2025-02-04 20:20:40 瀏覽:299
python在類中定義函數調用函數 發布:2025-02-04 20:14:47 瀏覽:596
安卓手機的壁紙是哪個 發布:2025-02-04 20:14:44 瀏覽:202
java發展前景 發布:2025-02-04 20:10:19 瀏覽:77
mac登陸密碼哪裡設置 發布:2025-02-04 19:50:20 瀏覽:526
手游腳本封號 發布:2025-02-04 19:42:12 瀏覽:436