Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 This directory contains the ObjectiveC implementation of the | 1 This directory contains the ObjectiveC implementation of the |
| 2 webrtc::PeerConnection API. This can be built for Mac or iOS. This | 2 webrtc::PeerConnection API. This can be built for Mac or iOS. This |
| 3 file describes building the API, unit test, and AppRTCDemo sample app. | 3 file describes building the API, unit test, and AppRTCDemo sample app. |
| 4 | 4 |
| 5 Prerequisites: | 5 Prerequisites: |
| 6 - Make sure gclient is checking out tools necessary to target iOS: your | 6 - Make sure gclient is checking out tools necessary to target iOS: your |
| 7 .gclient file should contain a line like: | 7 .gclient file should contain a line like: |
| 8 target_os = ['ios', 'mac'] | 8 target_os = ['ios', 'mac'] |
| 9 Make sure to re-run gclient sync after adding this to download the tools. | 9 Make sure to re-run gclient sync after adding this to download the tools. |
| 10 | 10 |
| 11 - Set up webrtc-related $GYP_DEFINES; example shell functions that set | 11 - Set up webrtc-related $GYP_DEFINES; example shell functions that set |
| 12 up for building for iOS-device, iOS-simulator, and Mac (resp) are: | 12 up for building for iOS-device, iOS-simulator, and Mac (resp) are: |
| 13 function wrbase() { | 13 function wrbase() { |
| 14 cd /path/to/webrtc/trunk | 14 cd /path/to/webrtc/trunk |
| 15 export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_obj c=1" | 15 export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_obj c=1" |
|
tkchin_webrtc
2015/10/27 17:00:19
remove libjingle_objc=1
| |
| 16 export GYP_GENERATORS="ninja" | 16 export GYP_GENERATORS="ninja" |
| 17 } | 17 } |
| 18 | 18 |
| 19 function wrios() { | 19 function wrios() { |
| 20 wrbase | 20 wrbase |
| 21 export GYP_DEFINES="$GYP_DEFINES OS=ios target_arch=armv7" | 21 export GYP_DEFINES="$GYP_DEFINES OS=ios" |
| 22 export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_ios" | 22 export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_ios" |
| 23 export GYP_CROSSCOMPILE=1 | 23 export GYP_CROSSCOMPILE=1 |
| 24 } | 24 } |
| 25 | 25 |
| 26 function wrios32() { | |
| 27 export GYP_DEFINES="$GYP_DEFINES target_arch=arm" | |
|
tkchin_webrtc
2015/10/27 17:00:19
wrios first then the export
| |
| 28 wrios | |
| 29 } | |
| 30 | |
| 31 function wrios64() { | |
| 32 export GYP_DEFINES="$GYP_DEFINES target_arch=arm64" | |
| 33 wrios | |
| 34 } | |
| 35 | |
| 26 function wrsim() { | 36 function wrsim() { |
| 27 wrbase | 37 wrbase |
| 28 export GYP_DEFINES="$GYP_DEFINES OS=ios target_arch=ia32" | 38 export GYP_DEFINES="$GYP_DEFINES OS=ios target_arch=ia32" |
|
tkchin_webrtc
2015/10/27 17:00:19
this might need a target_subarch=arm32
| |
| 29 export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_sim" | 39 export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_sim" |
| 30 export GYP_CROSSCOMPILE=1 | 40 export GYP_CROSSCOMPILE=1 |
| 31 } | 41 } |
| 32 | 42 |
| 33 function wrmac() { | 43 function wrmac() { |
| 34 wrbase | 44 wrbase |
| 35 export GYP_DEFINES="$GYP_DEFINES OS=mac target_arch=x64" | 45 export GYP_DEFINES="$GYP_DEFINES OS=mac target_arch=x64" |
|
tkchin_webrtc
2015/10/27 17:00:19
this might need a target_subarch=arm64
| |
| 36 export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_mac" | 46 export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_mac" |
| 37 } | 47 } |
| 38 | 48 |
| 39 - Finally, run "gclient runhooks" to generate ninja files. | 49 - Finally, run "gclient runhooks" to generate ninja files. |
|
tkchin_webrtc
2015/10/27 17:00:19
replace gclient runhooks with "webrtc/build/gyp_we
| |
| 40 | 50 |
| 41 Example of building & using the unittest & app: | 51 Example of building & using the unittest & app: |
| 42 | 52 |
| 43 - To build & run the unittest (must target mac): | 53 - To build & run the unittest (must target mac): |
| 44 wrmac && gclient runhooks && \ | 54 wrmac && gclient runhooks && \ |
| 45 ninja -C out_mac/Debug libjingle_peerconnection_objc_test && \ | 55 ninja -C out_mac/Debug libjingle_peerconnection_objc_test && \ |
| 46 ./out_mac/Debug/libjingle_peerconnection_objc_test.app/Contents/MacOS/libj ingle_peerconnection_objc_test | 56 ./out_mac/Debug/libjingle_peerconnection_objc_test.app/Contents/MacOS/libj ingle_peerconnection_objc_test |
| 47 | 57 |
| 48 - To build & launch the sample app on OSX: | 58 - To build & launch the sample app on OSX: |
| 49 wrmac && gclient runhooks && ninja -C out_mac/Debug AppRTCDemo && \ | 59 wrmac && gclient runhooks && ninja -C out_mac/Debug AppRTCDemo && \ |
| 50 ./out_mac/Debug/AppRTCDemo.app/Contents/MacOS/AppRTCDemo | 60 ./out_mac/Debug/AppRTCDemo.app/Contents/MacOS/AppRTCDemo |
| 51 | 61 |
| 52 - To build & launch the sample app on the iOS simulator: | 62 - To build & launch the sample app on the iOS simulator: |
| 53 wrsim && gclient runhooks && ninja -C out_sim/Debug iossim AppRTCDemo && \ | 63 wrsim && gclient runhooks && ninja -C out_sim/Debug iossim AppRTCDemo && \ |
| 54 ./out_sim/Debug/iossim out_sim/Debug/AppRTCDemo.app | 64 ./out_sim/Debug/iossim out_sim/Debug/AppRTCDemo.app |
| 55 | 65 |
| 56 - To build & sign the sample app for an iOS device: | 66 - To build & sign the sample app for an iOS device (32 bit): |
| 57 wrios && gclient runhooks && ninja -C out_ios/Debug-iphoneos AppRTCDemo | 67 wrios32 && gclient runhooks && ninja -C out_ios/Debug-iphoneos AppRTCDemo |
|
tkchin_webrtc
2015/10/27 17:00:19
wrios32 && webrtc/build/gyp_webrtc && ninja -C out
| |
| 68 | |
| 69 - To build & sign the sample app for an iOS device (64 bit): | |
| 70 wrios64 && gclient runhooks && ninja -C out_ios/Debug-iphoneos AppRTCDemo | |
| 58 | 71 |
| 59 - To install the sample app on an iOS device: | 72 - To install the sample app on an iOS device: |
|
tkchin_webrtc
2015/10/27 17:00:19
Delete this section
| |
| 60 ideviceinstaller -i out_ios/Debug-iphoneos/AppRTCDemo.app | 73 ideviceinstaller -i out_ios/Debug-iphoneos/AppRTCDemo.app |
| 61 (if installing ideviceinstaller from brew, use --HEAD to get support | 74 (if installing ideviceinstaller from brew, use --HEAD to get support |
| 62 for .app directories) | 75 for .app directories) |
| 63 - Alternatively, use iPhone Configuration Utility: | 76 - Alternatively, use iPhone Configuration Utility: |
| 64 - Open "iPhone Configuration Utility" (http://support.apple.com/kb/DL1465) | 77 - Open "iPhone Configuration Utility" (http://support.apple.com/kb/DL1465) |
| 65 - Click the "Add" icon (command-o) | 78 - Click the "Add" icon (command-o) |
| 66 - Open the app under out_ios/Debug-iphoneos/AppRTCDemo (should be added to the Applications tab) | 79 - Open the app under out_ios/Debug-iphoneos/AppRTCDemo (should be added to the Applications tab) |
| 67 - Click the device's name in the left-hand panel and select the Applications t ab | 80 - Click the device's name in the left-hand panel and select the Applications t ab |
| 68 - Click Install on the AppRTCDemo line. | 81 - Click Install on the AppRTCDemo line. |
| 69 (If you have any problems deploying for the first time, check | 82 (If you have any problems deploying for the first time, check |
| 70 the Info.plist file to ensure that the Bundle Identifier matches | 83 the Info.plist file to ensure that the Bundle Identifier matches |
| 71 your phone provisioning profile, or use a development wildcard | 84 your phone provisioning profile, or use a development wildcard |
| 72 provisioning profile.) | 85 provisioning profile.) |
| 73 - Alternately, use ios-deploy: | 86 - Alternately, use ios-deploy: |
| 74 ios-deploy -d -b out_ios/Debug-iphoneos/AppRTCDemo.app | 87 ios-deploy -d -b out_ios/Debug-iphoneos/AppRTCDemo.app |
| 75 | 88 |
| 76 - Once installed: | 89 - Once installed: |
| 77 - Tap AppRTCDemo on the iOS device's home screen (might have to scroll to find it). | 90 - Tap AppRTCDemo on the iOS device's home screen (might have to scroll to find it). |
| 78 - In desktop chrome, navigate to http://apprtc.appspot.com and note | 91 - In desktop chrome, navigate to http://apprtc.appspot.com and note |
| 79 the r=<NNN> room number in the resulting URL; enter that number | 92 the r=<NNN> room number in the resulting URL; enter that number |
| 80 into the text field on the phone. | 93 into the text field on the phone. |
| OLD | NEW |