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