-
Scala
-
SBT
- Check again what standard libraries are actually needed
-
Build
WebRTCiOS.framework
. -
Bootstrap TURN server (coturn) running on EC2 instance.
-
Run
bash bin/webrtc/sync_ios.sh
- Fetch the entire library of webrtc as well as chromium and other dependencies. ~12GB or
- Sync webrtc library to the latest release branch
-
Run
bash bin/webrtc/build_ios.sh (all | arm | armv7 | arm64 | sim | sim32 | sim64) (DEBUG | RELEASE)?
- Build for passed architectures with default deployment target of 8.0 & RELEASE and (over)write an archive file for each architecture in
output/archive/
.
- Build for passed architectures with default deployment target of 8.0 & RELEASE and (over)write an archive file for each architecture in
-
Run
bash bin/webrtc/assemble_ios.sh (all | arm | armv7 | arm64 | sim | sim32 | sim64)
- Assemble all archives built in previous
build
phase and (over)writeWebRTCiOS.framework
inoutput/
- Assemble all archives built in previous
-
Drag
output/WebRTCiOS.framework
to your project. -
(If you use Swift) Add
#import <WebRTCiOS/WebRTCiOS.h>
to your bridging header. -
Link these standard libraries
- libc++.dylib
- libstdc++.6.dylib
- libsqlite3.dylib
- CoreAudio.framework
- CoreVideo.framework
- CoreMedia.framework
- CoreGraphics.framework
- AudioToolbox.framework
- VideoToolBox.framework
- AVFoundation.framework
- Security.framework
- CFNetwork.framework
- GLKit.framework
- OpenGLES.framework
- QuartzCore.framework
-
Build your project!
- Run
while true; do du -sm src/; sleep 3; done
to keep track of the size of files being downloaded.
-
Make sure
output/archive
contains pre-built archive files for intended architectures. -
Run
bash bin/webrtc/assemble_ios.sh (all | arm | armv7 | arm64 | sim | sim32 | sim64
-
Create
config.json
at root directory with the following format:{ "turn": { "ec2": { "aws_access_key": "", "aws_secret_key": "", "region": "ap-northeast-1", "instance_type": "t2.micro", "key_pair_name": "", "key_pair_private_key_location": "" }, "turn_config": { "turn_username": "", "turn_password": "", "turn_db_realm": "", "admin_username": "", "admin_password": "", "ssl_cert_subject": { "country": "", // C "state": "", // ST "location": "", // L "organization": "", // O "common_name": "" // CN } } } }
-
Run
bin/turn/bootstrap.sh
-
Wait Until EC2 instance is created and TURN server is bootstrapped. Once everything is set up, program will automatically switch to tailing remote log file of TURN server process.
-
HTTPS management interface can be accessed from the same ports as the main TURN listener.
- i.e https://<PUBLIC_IP>:3478
-
Make sure you run
chmod 400 YOUR_PRIVATE_KEY.pem
before running bootstrap command. Accessing AWS in general will fail if.pem
file has wrong (overly open) permission.
bash bin/turn/tail_remote_log.sh PRIVATE_KEY_LOCATION PUBLIC_IP
- Tail remote log file of TURN server
-
sqlite3 /var/lib/turn/turndb
- Access User DB
-
telnet 127.0.0.1 5766
- Access telnet management CLI for currently running
turnserver
- Access telnet management CLI for currently running