iOS - 編譯WebRTC.a靜態庫


 編譯WebRTC.a靜態庫

編譯的方式,我看了幾個帖子,什么方法都有,這里我根據我的需求,說說我的做法。我的主要目的是因為網上找不到.a模式的webrtc的靜態庫,都是framework,所以我才自己編譯的。我的需求很簡單,就是需要.a出來。ios版本的webrtc是有自己的編譯腳本文件的,我們在這里面做些修改就可以,腳本文件的路徑是:webrtc_build/webrtc/src/tools_webrtc/ios/build_ios_libs.sh

正常情況,如果你不做任何更改,直接執行這個腳本,會編譯出WebRTC.framework,默認路徑會在:webrtc_build/webrtc/src/out_ios_libs  由於我沒有編譯framework,所以沒有圖,但是我猜測的話,應該會有真機的32位和64位的還有模擬器的,因為我編譯的.a就是這幾個。

所以如果你需要去掉不要的版本,還有你需要編譯的.a,在這幾個地方更改下就可以,記得更改是在webrtc_build/webrtc/src/tools_webrtc/ios/build_ios_libs.py  

看清楚后綴 看清楚后綴 看清楚后綴是py

 

 
 

arm64真機64位,個人覺得編這個就夠了其實.....別的都可以刪掉,剩下的是arm是真機32位,x64模擬器64位,x86模擬器32位,根據個人需要刪減。建議大家先備份啊!!

之后的default位置后面改成'static_only'這個大家看到help也知道意思了,我這個圖是改了后的,之前是default='framework'

腳本對於我來說更改這些就行,如果有其他的需要的話大家可以多研究研究其他的選項。

這里更改完后保存退出。

然后執行

./build_ios_libs.sh

就開始一頓編輯....這個時間不算短,我的機器應該有個20分鍾左右。

編譯成功以后,你可以在這個地方找到你的.a靜態庫 

webrtc_build/webrtc/src/out_ios_libs

 

 
 

因為我當時忘記刪除不要的架構,所以把4個都編出來了,如果你只編一個,時間會節省不少,這里根據你自己的需要,拿去用就好了。還有目前我找到的頭文件的位置貌似這個

webrtc_build/webrtc/src/sdk/objc/Framework/Headers/WebRTC

 

 
 

之后,把.a靜態庫和頭文件拖進你的項目里去使用就好了,當然是建議建個專門的文件夾來存放.a和頭文件,記得在xcode中設置build setting里的Header search path 還有設置bitcode為no,靜態庫使用的時候,需要引入其他一些依賴:

 

 
 

不引用的話,項目編譯期就會報錯。github上有很多開源的Demo,本篇主要是為了解決需要.a靜態庫的朋友,以及一些當前下載編譯可行簡便的方法。后續如果有新的體驗會更新,有問題大家可以留言。

 

寫這篇文章的時候,借鑒了如下的文章,有興趣的可以也去看看:

iOS下載、編譯WebRTC及demo   //這篇文章最后說了framework的集成,需要freamwork怎么集成到項目里的可以看下

WebRTC iOS&OSX 庫的編譯  //我是從這篇文章確定了新的源碼庫也是可以編譯出.a的,才下了決心去下6個G




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM