hbos f9da44dbcf RTCPeerConnectionInterface.mm createNativeConfiguration and other clean-up.
This CL turns nativeConfiguration into createNativeConfiguration returning a
pointer or nil on failure. This method's certificate generation is updated to
use the new API and reports failure (nil) if unsuccessful instead of relying on
the default certificate. We also remove the implicit assumption (now incorrect)
that RSA is the default. This is the same type of changes as was done in
https://codereview.webrtc.org/1965313002 but this file
(RTCPeerConnectionInterface.mm) was forgotten.

With no more usages of kIdentityName it and dtlsidentitystore.cc is removed.
Also removes unnecessary #include in peerconnectioninterface.h that was still
remnant due to an indirect include of kIdentityName.

RTCConfiguration+Private.h now lists method nativeEncryptionKeyTypeForKeyType
which was added in the above mentioned prior CL.

BUG=webrtc:5707, webrtc:5708

Review-Url: https://codereview.webrtc.org/2035473004
Cr-Commit-Position: refs/heads/master@{#13089}
2016-06-09 10:18:35 +00:00
..
2015-10-01 00:33:36 +00:00

This directory contains the ObjectiveC implementation of the
webrtc::PeerConnection API.  This can be built for Mac or iOS.  This
file describes building the API, unit test, and AppRTCDemo sample app.

Prerequisites:
- Make sure gclient is checking out tools necessary to target iOS: your
  .gclient file should contain a line like:
  target_os = ['ios', 'mac']
  Make sure to re-run gclient sync after adding this to download the tools.

- Set up webrtc-related $GYP_DEFINES; example shell functions that set
  up for building for iOS-device, iOS-simulator, and Mac (resp) are:
function wrbase() {
  cd /path/to/webrtc/src
}

function wrios() {
  wrbase
  export GYP_DEFINES="$GYP_DEFINES OS=ios"
  export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_ios"
  export GYP_CROSSCOMPILE=1
}

function wrios32() {
  wrios
  export GYP_DEFINES="$GYP_DEFINES target_arch=arm"
}

function wrios64() {
  wrios
  export GYP_DEFINES="$GYP_DEFINES target_arch=arm64"
}

function wrsim() {
  wrbase
  export GYP_DEFINES="$GYP_DEFINES OS=ios target_subarch=arm32 target_arch=ia32"
  export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_sim"
  export GYP_CROSSCOMPILE=1
}

function wrmac() {
  wrbase
  export GYP_DEFINES="$GYP_DEFINES OS=mac target_subarch=arm64 target_arch=x64"
  export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_mac"
}

- Finally, run "webrtc/build/gyp_webrtc.py" to generate ninja files.

Example of building & using the unittest & app:

- To build & run the unittest (must target mac):
  wrmac && ./webrtc/build/gyp_webrtc.py && \
      ninja -C out_mac/Debug libjingle_peerconnection_objc_test && \
      ./out_mac/Debug/libjingle_peerconnection_objc_test.app/Contents/MacOS/libjingle_peerconnection_objc_test

- To build & launch the sample app on OSX:
  wrmac && ./webrtc/build/gyp_webrtc.py && ninja -C out_mac/Debug AppRTCDemo && \
      ./out_mac/Debug/AppRTCDemo.app/Contents/MacOS/AppRTCDemo

- To build & launch the sample app on the iOS simulator:
  wrsim && ./webrtc/build/gyp_webrtc.py && ninja -C out_sim/Debug iossim AppRTCDemo && \
      ./out_sim/Debug/iossim out_sim/Debug/AppRTCDemo.app

- To build & sign the sample app for an iOS device (32 bit):
  wrios32 && ./webrtc/build/gyp_webrtc.py && ninja -C out_ios/Debug-iphoneos AppRTCDemo

- To build & sign the sample app for an iOS device (64 bit):
  wrios64 && ./webrtc/build/gyp_webrtc.py && ninja -C out_ios/Debug-iphoneos AppRTCDemo