Skip to content

Commit

Permalink
Refine Carthage instructions.
Browse files Browse the repository at this point in the history
// FREEBIE
  • Loading branch information
charlesmchen committed Feb 13, 2017
1 parent f02d325 commit 9e7ca5d
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 30 deletions.
33 changes: 31 additions & 2 deletions BUILDING.md
Expand Up @@ -17,11 +17,15 @@ occasionally, CocoaPods itself will need to be updated. Do this with
sudo gem update
```

3) Some dependencies are added via carthage. Run:
3) Some dependencies are added via carthage. However, our prebuilt WebRTC.framework also resides in the Carthage directory.

Run:
```
carthage checkout
// DO NOT run: `carthage update` or `carthage checkout`.
git submodule update --init
carthage build
```

If you don't have carthage, here are install instructions:
```
https://github.com/Carthage/Carthage#installing-carthage
Expand All @@ -46,4 +50,29 @@ value to "build".

Features related to push notifications are known to be not working for third-party contributors since Apple's Push Notification service pushs will only work with Open Whisper Systems production code signing certificate.

### Building WebRTC

A prebuilt version of WebRTC.framework resides in our Carthage submodule (see above).
However, if you'd like to build it from souce, this is how it's done.

These instructions are derived from the WebRTC documentation:

https://webrtc.org/native-code/ios/

# 1. Install depot tools
cd <somewhere>
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
cd depot_tools
export PATH=<somewhere>/depot_tools:"$PATH"
# 2. Fetch webrtc source
cd <somewhere else>
mkdir webrtc
cd webrtc
fetch --nohooks webrtc_ios
gclient sync
# 3. Build webrtc
cd src
webrtc/build/ios/build_ios_libs.sh
# 4. Move the WebRTC.framework into Signal-iOS's Carthage directory
mv out_ios_libs/WebRTC.framework <Your Signal-iOS repository>/Carthage/Build/iOS/

31 changes: 3 additions & 28 deletions MAINTAINING.md
Expand Up @@ -9,34 +9,9 @@ Keeping cocoapods based dependencies is easy enough.

`pod update`

### WebRTC

We don't currently have an automated build (cocoapod/carthage) setup for
the WebRTC.framework. Instead, read the WebRTC upstream source and build
setup instructions here:

https://webrtc.org/native-code/ios/

Once you have your build environment set up and the WebRTC source downloaded:

# The specific set of commands that worked for me were somewhat different.
# 1. Install depot tools
cd <somewhere>
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
cd depot_tools
export PATH=<somewhere>/depot_tools:"$PATH"
# 2. Fetch webrtc source
cd <somewhere else>
mkdir webrtc
cd webrtc
fetch --nohooks webrtc_ios
gclient sync
# 3. Build webrtc
# NOTE: build_ios_libs.sh only worked for me from inside "src"
cd src
webrtc/build/ios/build_ios_libs.sh
# NOTE: It's Carthage/Build/iOS, not Carthage/Builds
mv out_ios_libs/WebRTC.framework ../../Signal-iOS/Carthage/Build/iOS/
Similarly, Carthage dependencies can be updated like so:

`carthage update`

## Translations

Expand Down

0 comments on commit 9e7ca5d

Please sign in to comment.