編譯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
