WebRTC(iOS)下載編譯(下載指定版本)


 WebRTC(iOS)下載編譯

1、下載編譯環境:

硬件:iMac (21.5英寸,2013年末)

系統:OS X Yosemite 版本 10.10.5

准備好穩定的翻牆工具。

Mac 翻牆推薦:Lantern

打開Lantern,在終端輸入export http_proxy=http://127.0.0.1:8787

export https_proxy=http://127.0.0.1:8787,現在終端就可以翻牆了。

這里填寫的地址可能會有變化,具體見圖:

 

 

2、安裝git

http://www.cnblogs.com/ccdev/archive/2012/09/12/2682098.html

下載http://code.google.com/p/git-osx-installer/

3、安裝depot_tools

a 啟動終端,當前路徑為:/Users/xxx : 

b git 命令獲取depot_tools:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

c 把depot_tools 設置到PATH中:echo "export PATH=$PWD/depot_tools:$PATH" > $HOME/.bash_profile

使PATH設置生效:source $HOME/.bash_profile

echo $PATH 查看設置是否生效。

4、獲取WebRTC 源碼

a 設置要編譯的平台到環境變量中:

export GYP_DEFINES="OS=ios"

b 創建工作路徑並執行下面的語句: 

fetch --nohooks webrtc_ios

gclient sync -r ec6b51d318f2cc747446089259495b161db11681

注意:ec6b51d318f2cc747446089259495b161db11681為版本號。獲取版本號方式為:

a 進入webrtc官網;

b 上方About->Release Notes;

c 選擇想要下載的版本,例如M48,進入如下頁面

 

d 點擊WebRTC M48 branch;

e 選擇第一行,進入如下頁面

現在即可見到版本號。

gclient sync -r ec6b51d318f2cc747446089259495b161db11681這一步需要等待很久,下載一共10多個g的代碼,需要穩定的翻牆工具,我當時下載了一晚上加一上午。

 

5、編譯庫文件

編譯這一步不推薦按照官網的方式編譯(而且隨着webrtc版本更新,官網也只有最新版本的編譯方式,可能無法正確編譯我們下載的版本)。

在我們下載的源代碼中有一個編譯腳本,還是以我們下載的版本為例,其位置在src/talk/build/build_ios_libs.sh。(后面一些新版本在src/webrtc/build/ios/build_ios_libs.sh)。

直接執行這個腳本就能編譯出需要的庫文件了。

以我們下載的版本為例,腳本之行后會在src/out_ios_libs下產生很多文件,src/out_ios_libs/fat下就是我們需要的庫文件,可以直接將這些文件全部導入工程中。頭文件路徑:src/talk/app/webrtc/objc/public。

到這里我們已經可以使用了,但是我們發現fat下的文件太多而且占空間太大,我們可以執行下面兩條命令來使我們的庫變小:

libtool -static -v -o webrtc.a fat/*.a

strip -S -X webrtc.a

 

最終形成的webrtc.a庫只有70多m。

 

6、開啟H264編解碼

src/webrtc/build/common.gypi修改use_objc_h264%值為1.

 

7、編譯中遇到的錯誤

(一)多重證書的問題,AssertionError: Multiple codesigning fingerprints for identity: iPhone Developer 

可參考 http://ninjanetic.com/how-to-get-started-with-webrtc-and-ios-without-wasting-10-hours-of-your-life/ 

大概步驟:

(1)用 security find-identity 找到你想要的identify;

(2)在 src/chromium/src/build/common.gypi 里有一個CODE_SIGN_IDENTITY,

把里面的  'CODE_SIGN_IDENTITY[sdk=iphoneos*]': 'iPhone Developer' 修改一下,
比如修改成  'CODE_SIGN_IDENTITY[sdk=iphoneos*]': 'iPhone Developer: 136165767@qq.com (462TTV8Q88)'

(3)重新執行編譯腳本。

(二)iPhone SDK版本不正確,no such file or directory: ‘/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/usr/lib/libicucore.dylib’

老版webrtc編譯需要的sdk比較老,而你的機器上安裝的Xcode比較新;下載老版本Xcode,安裝好並將名字改為Xcode,重新執行編譯腳本。

 


免責聲明!

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



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