blob: 692fbbc5643d2552b32ac02b71e8a2ecbcb67124 [file] [log] [blame]
henrike@webrtc.org28e20752013-07-10 00:45:36 +00001This directory contains the ObjectiveC implementation of the
fischman@webrtc.org1bc19542013-08-01 18:29:45 +00002webrtc::PeerConnection API. This can be built for Mac or iOS. This
3file describes building the API, unit test, and AppRTCDemo sample app.
henrike@webrtc.org28e20752013-07-10 00:45:36 +00004
5Prerequisites:
6- Make sure gclient is checking out tools necessary to target iOS: your
7 .gclient file should contain a line like:
8 target_os = ['ios', 'mac']
9 Make sure to re-run gclient sync after adding this to download the tools.
henrike@webrtc.org28e20752013-07-10 00:45:36 +000010
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000011- Set up webrtc-related $GYP_DEFINES; example shell functions that set
12 up for building for iOS-device, iOS-simulator, and Mac (resp) are:
13function wrbase() {
fischman@webrtc.org825e9b02013-08-07 16:52:03 +000014 cd /path/to/webrtc/trunk
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000015 export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_objc=1"
16 export GYP_GENERATORS="ninja"
17}
henrike@webrtc.org28e20752013-07-10 00:45:36 +000018
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000019function wrios() {
20 wrbase
21 export GYP_DEFINES="$GYP_DEFINES OS=ios target_arch=armv7"
22 export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_ios"
23 export GYP_CROSSCOMPILE=1
24}
henrike@webrtc.org28e20752013-07-10 00:45:36 +000025
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000026function wrsim() {
27 wrbase
28 export GYP_DEFINES="$GYP_DEFINES OS=ios target_arch=ia32"
29 export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_sim"
30 export GYP_CROSSCOMPILE=1
31}
henrike@webrtc.org28e20752013-07-10 00:45:36 +000032
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000033function wrmac() {
34 wrbase
35 export GYP_DEFINES="$GYP_DEFINES OS=mac target_arch=x64"
36 export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_mac"
37}
henrike@webrtc.org28e20752013-07-10 00:45:36 +000038
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000039- Finally, run "gclient runhooks" to generate ninja files.
40
41Example of building & using the unittest & app:
42
43- To build & run the unittest (must target mac):
44 wrmac && gclient runhooks && \
45 ninja -C out_mac/Debug libjingle_peerconnection_objc_test && \
46 ./out_mac/Debug/libjingle_peerconnection_objc_test.app/Contents/MacOS/libjingle_peerconnection_objc_test
47
tkchin@webrtc.orgacca6752014-05-30 22:26:06 +000048- To build & launch the sample app on OSX:
49 wrmac && gclient runhooks && ninja -C out_mac/Debug AppRTCDemo && \
50 ./out_mac/Debug/AppRTCDemo.app/Contents/MacOS/AppRTCDemo
51
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000052- To build & launch the sample app on the iOS simulator:
53 wrsim && gclient runhooks && ninja -C out_sim/Debug iossim AppRTCDemo && \
54 ./out_sim/Debug/iossim out_sim/Debug/AppRTCDemo.app
55
56- To build & sign the sample app for an iOS device:
fischman@webrtc.org7b273a52013-11-04 18:48:12 +000057 wrios && gclient runhooks && ninja -C out_ios/Debug-iphoneos AppRTCDemo
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000058
59- To install the sample app on an iOS device:
fischman@webrtc.org7b273a52013-11-04 18:48:12 +000060 ideviceinstaller -i out_ios/Debug-iphoneos/AppRTCDemo.app
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000061 (if installing ideviceinstaller from brew, use --HEAD to get support
62 for .app directories)
63- Alternatively, use iPhone Configuration Utility:
64 - Open "iPhone Configuration Utility" (http://support.apple.com/kb/DL1465)
65 - Click the "Add" icon (command-o)
fischman@webrtc.org7b273a52013-11-04 18:48:12 +000066 - Open the app under out_ios/Debug-iphoneos/AppRTCDemo (should be added to the Applications tab)
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000067 - Click the device's name in the left-hand panel and select the Applications tab
68 - Click Install on the AppRTCDemo line.
69 (If you have any problems deploying for the first time, check
70 the Info.plist file to ensure that the Bundle Identifier matches
71 your phone provisioning profile, or use a development wildcard
72 provisioning profile.)
tkchin@webrtc.orgacca6752014-05-30 22:26:06 +000073- Alternately, use ios-deploy:
74 ios-deploy -d -b out_ios/Debug-iphoneos/AppRTCDemo.app
fischman@webrtc.org1bc19542013-08-01 18:29:45 +000075
76- Once installed:
77 - 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
79 the r=<NNN> room number in the resulting URL; enter that number
80 into the text field on the phone.