WebRTC(iOS)下载编译(下载指定版本)

 WebRTC(iOS)下载编译

1、下载编译环境:

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

系统:OS X Yosemite 版本 10.10.5

准备好稳定的FQ工具。

Mac FQ推荐:Lantern

打开Lantern,在终端输入export http_proxy=http://127.0.0.1:8787

export https_proxy=http://127.0.0.1:8787,现在终端就可以FQ了。

这里填写的地址可能会有变化,具体见图:

 

 

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的代码,需要稳定的FQ工具,我当时下载了一晚上加一上午。

 

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,重新执行编译脚本。

 

posted on 2016-09-13 16:15  亮仔很贪吃  阅读(8053)  评论(2编辑  收藏  举报

导航