Corrected BUILDING.md and MAINTAINING.md instructions so new developers will have a successful build in XCode. Current instructions from BUILDING.md were not current and incomplete nor referenced MAINTAINING.md.

pull/1/head
EDSGH 8 years ago committed by Matthew Chen
parent 2791b9551e
commit 13647bab39

@ -22,27 +22,60 @@ sudo gem update
carthage update
```
If you don't have carthage, here are install instructions:
```
https://github.com/Carthage/Carthage#installing-carthage
```
4) Open the `Signal.xcworkspace` in Xcode.
4) We don't currently have an automated build (cocoapod/carthage) setup for
the WebRTC.framework and we need the libraries for a successful XCode build.
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/
5) Open the `Signal.xcworkspace` in Xcode.
```
open Signal.xcworkspace
```
5) In the Signal target on the General tab, change the Team drop down to your own. On the Capabilities tab turn off Push Notifications and Data Protection. Only Background Modes should remain on.
6) In the Signal target on the General tab, change the Team drop down to your own. On the Capabilities tab turn off Push Notifications and Data Protection. Only Background Modes should remain on.
6) Some of our build scripts, like running tests, expect your Derived
7) Some of our build scripts, like running tests, expect your Derived
Data directory to be `$(PROJECT_DIR)/build`. In Xcode, go to `Preferences-> Locations`,
and set the "Derived Data" dropdown to "Relative" and the text field
value to "build".
7) Build and Run and you are ready to go!
8) Build and Run and you are ready to go!
## Known issues
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.
If you would like to contribute a transation please read the MAINTAINING.md file in this directory.

@ -1,43 +1,8 @@
Apart from the general `BUILDING.md` there are certain things that have
qApart from the general `BUILDING.md` there are certain things that have
to be done by Signal-iOS maintainers.
For transperancy and bus factor, they are outlined here.
## Dependencies
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/
## Translations
Read more about translations in [TRANSLATIONS.md](signal/translations/TRANSLATIONS.md)

Loading…
Cancel
Save