{"id":13784776,"url":"https://github.com/pristineio/webrtc-build-scripts","last_synced_at":"2025-05-16T05:04:52.118Z","repository":{"id":16140104,"uuid":"18885515","full_name":"pristineio/webrtc-build-scripts","owner":"pristineio","description":"A set of build scripts useful for building WebRTC libraries for Android and iOS.","archived":false,"fork":false,"pushed_at":"2018-04-26T12:26:24.000Z","size":213,"stargazers_count":1126,"open_issues_count":90,"forks_count":447,"subscribers_count":109,"default_branch":"master","last_synced_at":"2025-04-08T15:06:33.549Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pristineio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-17T16:29:44.000Z","updated_at":"2025-03-25T18:07:43.000Z","dependencies_parsed_at":"2022-08-07T08:15:14.019Z","dependency_job_id":null,"html_url":"https://github.com/pristineio/webrtc-build-scripts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pristineio%2Fwebrtc-build-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pristineio%2Fwebrtc-build-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pristineio%2Fwebrtc-build-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pristineio%2Fwebrtc-build-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pristineio","download_url":"https://codeload.github.com/pristineio/webrtc-build-scripts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254471060,"owners_count":22076585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T19:00:52.350Z","updated_at":"2025-05-16T05:04:52.096Z","avatar_url":"https://github.com/pristineio.png","language":"Shell","readme":"## PSA - WebRTC builds have moved to using GN instead of GYP. Android build script is adapted, but iOS script is still break. Feel free to fork and update them.\n\n## WebRTC Build Scripts\n\n[![Join the chat at https://gitter.im/pristineio/webrtc-build-scripts](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/pristineio/webrtc-build-scripts?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\u003c/br\u003e\nA set of build scripts useful for building WebRTC libraries for Android and iOS.\n\nBugs: Please submit the [revision](https://code.google.com/p/webrtc/source/list) number that you are using. There are frequent updates to this project so please watch the changelist for bug fixes.\n\n### Android ARMv7, ARMv8, x86, x86_64 Builds -- [Guide here](http://tech.pristine.io/build-android-apprtc/)\n\nThe following instructions are for building the native WebRTC libraries for Android.\n\n\n#### Getting Started\n##### On Linux\nThe scripts can probably work on most distros, although we only have experience with Ubuntu 12.04 and 14.04 on 64 bit machines.\n\nThis is only required once.\n```shell\n\n# Source all the routines\nsource android/build.sh\n\n# Install any dependencies needed\ninstall_dependencies\n\n# Pull WebRTC\nget_webrtc\n```\n\n##### On Mac or Windows\nIf you don't have a Ubuntu machine available, or you are too lazy to setup a virtual machine manually, you can build WebRTC for Android on your Mac or Windows PC through our Vagrant script.\n\nFirst of all, you need to [download and install](http://www.vagrantup.com/downloads.html) Vagrant. After that, from the `/android` directory, you need to execute the following in you shell:\n\n```shell\n\n# If you need to use private SSH keys from your host computer \n# Execute this line of code to ensure your private key is added to your identity\nssh-add -L\n\n# If there are no identities, add them by:\nssh-add ~/.ssh/id_rsa\n\n# Boot up and provision the Vagrant box\nvagrant up\n\n# SSH into the Vagrant box\nvagrant ssh\n\n# Installs the required dependencies on the machine\ninstall_dependencies\n\n```\nOn Windows machines you may face issues with long path names on the VM that aren't handled correctly. A work around is to copy the script to another directory (not the one shared between the VM and Windows host), and build there:\n\n```shell\n\nmkdir mybuild\ncd mybuild\ncp /vagrant/build.sh .\nsource ./build.sh\nget_webrtc\nbuild_apprtc\n\n```\n\n#### Building the libraries\n\nThen you can build the Android example\n\n```shell\n# Pull WebRTC\nget_webrtc\n\n# Build apprtc\nbuild_apprtc\n\n# Build in debug mode\nexport WEBRTC_DEBUG=true\nbuild_apprtc\n```\n\nYou can build for armv7, armv8, x86, x86_64 platform\n\n```shell\nexport WEBRTC_ARCH=armv7 #or armv8, x86, or x86_64\nprepare_gyp_defines \u0026\u0026\nexecute_build\n```\n\nYou can build a particular [revision](https://code.google.com/p/webrtc/source/list)\n\n```shell\n# Pull WebRTC\nget_webrtc 6783\n\n# Build apprtc\nbuild_apprtc\n```\n\nWhen the scripts are done you can find the .jar and .so file in $WEBRTC_ROOT under \"libjingle\\_peerconnection\\_builds\".\n\n\n\n### iOS (armv7, arm64, i386) and Mac (X86_64) -- [Guide here](http://tech.pristine.io/build-ios-apprtc/)\nThese steps must be run on Mac OSX\n\nSource the [ios build scripts](https://github.com/pristineio/webrtc-build-scripts/blob/master/ios/build.sh) or  [open the Xcode project](https://github.com/pristineio/webrtc-build-scripts/tree/master/ios/WebRTC.xcodeproj)\n\n```shell\nsource ios/build.sh\n```\n\nSpecify if you want to build for Debug/Profile/Release by setting either WEBRTC_DEBUG, WEBRTC_PROFILE, WEBRTC_RELEASE as an environment variable in your bash or xcode scheme run settings.\n```shell\nWEBRTC_DEBUG=true\nWEBRTC_PROFILE=true \n#or\nWEBRTC_RELEASE=true\n```\n\n\n#### Building the libraries\n\nThen you can build the iOS example\n```shell\n# We use the term webrtc dance a lot to build \ndance\n\n# Or in two steps\nget_webrtc\n# Make changes then build WebRTC\nbuild_webrtc\n```\nMac example\n```shell\n# Get WebRTC\nget_webrtc\n# Make changes then build WebRTC\nbuild_webrtc_mac\n```\n\n\nCheck which [revision](https://code.google.com/p/webrtc/source/list) you are using at ./webrtc-build-scripts/ios/webrtc/libWebRTC-LATEST-Universal-Debug.a.version.txt\n\n\nOpen the [xcode project](https://github.com/pristineio/webrtc-build-scripts/tree/master/ios/WebRTC.xcodeproj), and execute the [AppRTC Demo](https://code.google.com/p/webrtc/source/browse/#svn%2Ftrunk%2Ftalk%2Fexamples%2Fobjc%2FAppRTCDemo) on any iOS 7 device or simulator\n```shell\nopen ./webrtc-build-scripts/ios/WebRTC.xcodeproj\n```\n\nYou can also build a particular [revision](https://code.google.com/p/webrtc/source/list)\n```shell\n    #Pull WebRTC\n    update2Revision 6783\n```\nMake changes then,\n```shell\n    #Build WebRTC\n    build_webrtc\n```\nMake sure you label your new binaries that are generated in \n```shell\n./webrtc-build-scripts/ios/webrtc/libjingle_peerconnection_builds \n```\n\n##### Cocoapods!!\n[![Version](https://img.shields.io/cocoapods/v/libjingle_peerconnection.svg?style=flat)](http://cocoadocs.org/docsets/libjingle_peerconnection)\n[![License](https://img.shields.io/cocoapods/l/libjingle_peerconnection.svg?style=flat)](http://cocoadocs.org/docsets/libjingle_peerconnection)\n[![Platform](https://img.shields.io/cocoapods/p/libjingle_peerconnection.svg?style=flat)](http://cocoadocs.org/docsets/libjingle_peerconnection)\n\n###### Usage\n\nTo run the example AppRTC Demo project, clone the repo, and run `pod install` from the Example directory first.\n\n###### Requirements\nA fast internet connection.... for your own sanity\n\n###### Installation\n\nlibjingle_peerconnection starting from revision 6931 is available through [CocoaPods](http://cocoapods.org). To install\nit, simply add the following line to your Podfile:\n\n    pod \"libjingle_peerconnection\"\n\niOS  ARM64 builds are available as of 7810.0.0\n\nmac x86_64 builds are available as of 7759.0.0\n\n###Linux x86, x86_64 Builds\n\nThe following instructions are for building the native WebRTC libraries for Linux.\n\n\n#### Getting Started\n##### On Linux\nThe scripts can probably work on most distros, although we only have experience with Ubuntu 12.04, 14.04, 16.04 and 16.10 on 64 bit machines.\n\nThis is only required once.\n```shell\n\n# Source all the routines\nsource linux/build.sh\n\n# Install any dependencies needed\ninstall_dependencies\n\n# Pull WebRTC\nget_webrtc\n\n# Build apprtc\nbuild_apprtc\n```\n\nYou can build for arm-linaro-gnueabihf, x86, x86_64 platform\n\n```shell\nexport WEBRTC_ARCH=x86 #, arm-linaro-gnueabihf or x86_64\nprepare_gyp_defines \u0026\u0026\nexecute_build\n```\n\nYou can build a particular revision\n\n```shell\n# Pull WebRTC\nget_webrtc 6783\n\n# Build apprtc\nbuild_apprtc\n```\n\n###### Versioning\n\nThe versioning can be explained as follows:\n\n \n[6931](https://code.google.com/p/webrtc/source/detail?r=6931).2.0 \n\n6931 reflects the SVN revision from the WebRTC root Google Code Project\n\n2 reflects a Release Build (0 for Debug, 1 for Profile)\n\nProfile builds are no longer built by default\n\nThe minor 0 reflects any changes I might need to make to the sample xcode project itself to work (incremented normally)\n\n\n","funding_links":[],"categories":["Shell","Webrtc学习资料快速链接","etc","Native APIs"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpristineio%2Fwebrtc-build-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpristineio%2Fwebrtc-build-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpristineio%2Fwebrtc-build-scripts/lists"}