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



posted @ 2018-10-25 15:49  M·emor·Y  阅读(2632)  评论(8编辑  收藏  举报