Latest 1.0.50
Homepage https://github.com/pristineio/webrtc-build-scripts
License http://www.webrtc.org/license-rights/license Copyright (c) 2011, The WebRTC project authors. All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.

* Neither the name of Google nor the names of its contributors may
be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
“AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Platforms ios 7.0, requires ARC
Frameworks AVFoundation, AudioToolbox, CoreGraphics, CoreMedia, GLKit, UIKit, VideoToolbox
Authors

WebRTC Build Scripts

Join the chat at https://gitter.im/pristineio/webrtc-build-scripts

A set of build scripts useful for building WebRTC libraries for Android and iOS.

Bugs: Please submit the revision number that you are using. There are frequent updates to this project so please watch the changelist for bug fixes.

Android ARMv7, ARMv8, x86, x86_64 Builds — Guide here

The following instructions are for building the native WebRTC libraries for Android.

Getting Started

On Linux

The scripts can probably work on most distros, although we only have experience with Ubuntu 12.04 and 14.04 on 64 bit machines.

This is only required once.


# Source all the routines
source android/build.sh

# Install any dependencies needed
install_dependencies

# Pull WebRTC
get_webrtc
On Mac or Windows

If 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.

First of all, you need to download and install Vagrant. After that, from the /android directory, you need to execute the following in you shell:


# If you need to use private SSH keys from your host computer 
# Execute this line of code to ensure your private key is added to your identity
ssh-add -L

# If there are no identities, add them by:
ssh-add ~/.ssh/id_rsa

# Boot up and provision the Vagrant box
vagrant up

# SSH into the Vagrant box
vagrant ssh

On 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:


mkdir mybuild
cd mybuild
cp /vagrant/build.sh .
source ./build.sh
get_webrtc
build_apprtc

Building the libraries

Then you can build the Android example

# Pull WebRTC
get_webrtc

# Build apprtc
build_apprtc

# Build in debug mode
export WEBRTC_DEBUG=true
build_apprtc

You can build for armv7, armv8, x86, x86_64 platform

export WEBRTC_ARCH=armv7 #or armv8, x86, or x86_64
prepare_gyp_defines &&
execute_build

You can build a particular revision

# Pull WebRTC
get_webrtc 6783

# Build apprtc
build_apprtc

When the scripts are done you can find the .jar and .so file in $WEBRTC_ROOT under "libjingle_peerconnection_builds".

iOS (armv7, arm64, i386) and Mac (X86_64) — Guide here

These steps must be run on Mac OSX

Source the ios build scripts or open the Xcode project

source ios/build.sh

Specify 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.

WEBRTC_DEBUG=true
WEBRTC_PROFILE=true 
#or
WEBRTC_RELEASE=true

Building the libraries

Then you can build the iOS example

# We use the term webrtc dance a lot to build 
dance

# Or in two steps
get_webrtc
# Make changes then build WebRTC
build_webrtc

Mac example

# Get WebRTC
get_webrtc
# Make changes then build WebRTC
build_webrtc_mac

Check which revision you are using at ./webrtc-build-scripts/ios/webrtc/libWebRTC-LATEST-Universal-Debug.a.version.txt

Open the xcode project, and execute the AppRTC Demo on any iOS 7 device or simulator

open ./webrtc-build-scripts/ios/WebRTC.xcodeproj

You can also build a particular revision

    #Pull WebRTC
    update2Revision 6783

Make changes then,

    #Build WebRTC
    build_webrtc

Make sure you label your new binaries that are generated in

./webrtc-build-scripts/ios/webrtc/libjingle_peerconnection_builds 
Cocoapods!!

Version
License
Platform

Usage

To run the example AppRTC Demo project, clone the repo, and run pod install from the Example directory first.

Requirements

A fast internet connection…. for your own sanity

Installation

libjingle_peerconnection starting from revision 6931 is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod "libjingle_peerconnection"

iOS ARM64 builds are available as of 7810.0.0

mac x86_64 builds are available as of 7759.0.0

Versioning

The versioning can be explained as follows:

6931.2.0

6931 reflects the SVN revision from the WebRTC root Google Code Project

2 reflects a Release Build (0 for Debug, 1 for Profile)

Profile builds are no longer built by default

The minor 0 reflects any changes I might need to make to the sample xcode project itself to work (incremented normally)

Latest podspec

{
    "name": "chrome50_libjingle_peerconnection",
    "version": "1.0.50",
    "summary": "WebRTC Video Streaming Peer Connection API's. An iOS WebRTC demo application hosted on App Engine. Builds by Pristine.io",
    "description": "The WebRTC native APIs are implemented based on the following [WebRTC spec.](http://dev.w3.org/2011/webrtc/editor/webrtc.html) nnThe code that implements WebRTC native APIs (including the Stream and the PeerConnection APIs) are available in [libjingle](https://code.google.com/p/libjingle/source/browse/#svn%2Ftrunk%2Ftalk%2Fapp%2Fwebrtc). A [sample client application](https://code.google.com/p/libjingle/source/browse/#svn%2Ftrunk%2Ftalk%2Fexamples%2Fpeerconnection%2Fclient) is also provided there. nnThe target audience of this document are those who want to use WebRTC Native APIs to develop native RTC applications.",
    "homepage": "https://github.com/pristineio/webrtc-build-scripts",
    "platforms": {
        "ios": "7.0"
    },
    "authors": {
        "Rahul Behera": "[email protected]"
    },
    "social_media_url": "https://twitter.com/bot_the_builder",
    "source": {
        "git": "https://github.com/chamara-dev/gate_libjingle_peerconnection.git",
        "tag": "1.0.50"
    },
    "source_files": "libjingle_peerconnection/Headers/*.h",
    "public_header_files": "libjingle_peerconnection/Headers/*.h",
    "preserve_paths": "libjingle_peerconnection/libWebRTC.a",
    "vendored_libraries": "libjingle_peerconnection/libWebRTC.a",
    "frameworks": [
        "AVFoundation",
        "AudioToolbox",
        "CoreGraphics",
        "CoreMedia",
        "GLKit",
        "UIKit",
        "VideoToolbox"
    ],
    "libraries": [
        "c",
        "sqlite3",
        "stdc++"
    ],
    "requires_arc": true,
    "xcconfig": {
        "LIBRARY_SEARCH_PATHS": ""$(PODS_ROOT)/libjingle_peerconnection"",
        "HEADER_SEARCH_PATHS": ""${PODS_ROOT}/Headers/libjingle_peerconnection""
    },
    "license": {
        "type": "http://www.webrtc.org/license-rights/license",
        "text": "      Copyright (c) 2011, The WebRTC project authors. All rights reserved.nn      Redistribution and use in source and binary forms, with or withoutn      modification, are permitted provided that the following conditions aren      met:nn        * Redistributions of source code must retain the above copyrightn          notice, this list of conditions and the following disclaimer.nn        * Redistributions in binary form must reproduce the above copyrightn          notice, this list of conditions and the following disclaimer inn          the documentation and/or other materials provided with then          distribution.nn        * Neither the name of Google nor the names of its contributors mayn          be used to endorse or promote products derived from this softwaren          without specific prior written permission.nn      THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORSn      "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOTn      LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FORn      A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHTn      HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,n      SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOTn      LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,n      DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANYn      THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORTn      (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USEn      OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.n"
    }
}

Pin It on Pinterest

Share This