按照以下说明,我成功地在 MAC 上构建了 WebRTC:http ://www.webrtc.org/reference/getting-started
有没有人在 iOS 上成功构建它?我了解有人(arik)已在 iOS 上成功构建它:https ://groups.google.com/forum/#!msg/discuss-webrtc/VJg-fk2-i_0/dtG200DOzsgJ但步骤尚不清楚。
有人(在 ios 上构建)可以总结这些步骤,以便将来对每个尝试它的人有用吗?
按照以下说明,我成功地在 MAC 上构建了 WebRTC:http ://www.webrtc.org/reference/getting-started
有没有人在 iOS 上成功构建它?我了解有人(arik)已在 iOS 上成功构建它:https ://groups.google.com/forum/#!msg/discuss-webrtc/VJg-fk2-i_0/dtG200DOzsgJ但步骤尚不清楚。
有人(在 ios 上构建)可以总结这些步骤,以便将来对每个尝试它的人有用吗?
我写了一篇详细的博客文章,其中包含有关如何构建 WebRTC 示例 iOS 应用程序以及如何在 iOS 模拟器或实际 iOS 设备上运行它的所有说明。您可以在这里查看详细信息,这是一个相当漫长的过程。
是的,为 iOS 编译是一项非常痛苦的任务……尤其是让它在 Xcode 中工作。
这是我为 ios 获取 AppRTC Demo 的尝试
克隆/拉取:https ://github.com/pristineio/webrtc-build-scripts
获取 repo 后,打开 ios 目录中的 xcode 项目。将目标设置为 WebRTC Dance,然后执行。此时,脚本将更新 depot_tools 并完成所有繁琐的工作(拉取、修改、构建),以便 AppRTCDemo 的目标能够解决丢失的文件并执行。
完成后,您可以使用模拟器或真实设备将目标更改为 AppRTC Demo,单击运行,它应该会执行。那里链接的指南中有更详细的信息,自述文件中有更新。
如果您想知道在后台运行了什么,请查看 git repo 的 ios 目录中的 build.sh 文件。当您选择 WebRTC Dance 时,舞蹈功能实际上会为您执行。
描述构建过程并不容易(发生的事情太多了),但是构建脚本 repo 绝对应该为您指明正确的方向并帮助您在 ios 上获得 AppRTCDemo 'just work'
这里还发布了一个谷歌开发者视频,他们尝试分解构建过程,以便您可以为 ios 构建(youtube 标题具有误导性)。
另外,我刚刚添加了对 ios webrtc 的 cocoapods 支持,将其添加到您的 Podfile,
pod "libjingle_peerconnection"
# Add this to the bottom so it won't have issues with active architecture
post_install do |installer_representation|
installer_representation.project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
config.build_settings['VALID_ARCHS'] = ['armv7', 'i386']
end
end
end
并非所有修订都已构建,因此请查看可用修订的 cocoadocs
过去几个月我一直在这个领域工作——iOS 上的 webrtc 并不容易。为了解决这个问题,我添加了一个 github repo,其中包含一个使用 webrtc 的 iOS 应用程序的工作示例。
https://github.com/gandg/webrtc-ios
该站点也引用了 google 代码站点,因此它应该是一个有用的起点。
嗯,很久才回复这个帖子。但是,我希望有人可以从中获得更好的直觉。
我一直在处理 iOS 和 Android 平台的 webrtc 编译过程。如果您有效地遵循每个步骤,则此过程非常简单。要为 iOS 编译库,请按照以下给出的命令并确保您使用Mac 终端only-1
的相同 ( ) 选项卡进行 WebRTC 本机编译设置,如下所示:
首先,确保您已经安装了以下内容,如果没有,请使用这些命令来执行此操作:
- sudo add-apt-repository ppa:openjdk-r/ppa
- sudo apt-get install openjdk-8-jdk
- sudo apt-get install pkg-config
- sudo apt-get update
python==2.7
如果尚未安装,请同时安装。
- sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
- sudo xcode-select --switch /Library/Developer/CommandLineTools
- git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
- export PATH="$PATH:${HOME}/depot_tools"
之后,依次开始以下步骤。根据机器规格和互联网速度,每一步都需要自己的时间,因此请确保每一步都不间断地完成。
- mkdir webrtc_ios
- cd webrtc_ios
- fetch --nohooks webrtc_ios
- gclient sync
- cd src
- ./build/install-build-deps.sh
- git checkout origin/master
- git branch
确保您在webrtc_ios/src/
目录中,然后只需运行以下命令:
- ./tools_webrtc/ios/build_ios_libs.sh
事实证明,您最终将编译和构建包含Webrtc 头文件的WebRtc 框架。您可以简单地将这个框架拖放到您的 Xcode 生产环境中或直接导入它。
设置好编译环境后,现在每次对本机堆栈进行更改时,只需运行此命令./tools_webrtc/ios/build_ios_libs.sh
即可生成更新的框架。
如果您最终遇到有关 webrtc 框架编译的问题。请按照以下步骤操作。确保您在此目录中webrtc_ios/src/
:
- git checkout origin/master
# To make sure you're using origin/master
- git branch
- gclient revert
- gclient sync
- ./tools_webrtc/ios/build_ios_libs.sh
希望你能解决你的问题。我总是建议你们,你可以检查一个分支,该分支将在后面origin/master
并且没有为 iOS 构建 webrtc 框架所必需的所有依赖项和模块。所以,请始终结帐到branch/head
webrtc 本机堆栈
现在,如果您尝试使用这两个过程来构建 WebRTC,例如:
1- 使用 Bash 构建工具 ( ./tools_webrtc/ios/build_ios_libs.sh
)
2-使用手动编译
$ # debug build for 64-bit iOS
$ gn gen out/ios_64 --args='target_os="ios" target_cpu="arm64"'
$ # debug build for simulator
$ gn gen out/ios_sim --args='target_os="ios" target_cpu="x64"'
2.1- 编译 ( ninja -C out/Debug
)
这两个程序都将起作用。