1.8 KiB
Building
We typically develop against the latest stable version of Xcode.
As of this writing, that's Xcode 11.4
Prerequistes
Install Carthage
1. Clone
Clone the repo to a working directory:
git clone --recurse-submodules https://github.com/loki-project/session-ios
Since we make use of submodules, you must use git clone
, rather than
downloading a prepared zip file from Github.
We recommend you fork the repo on GitHub, then clone your fork:
git clone --recurse-submodules https://github.com/<USERNAME>/session-ios.git
You can then add the Session repo to sync with upstream changes:
git remote add upstream https://github.com/loki-project/session-ios
2. Dependencies
To build and configure the libraries Session uses, just run:
make dependencies
3. Xcode
Open the Signal.xcworkspace
in Xcode.
open Signal.xcworkspace
In the TARGETS area of the General tab, change the Team dropdown to your own. You will need to do that for all the listed targets, for ex. Signal, SignalShareExtension, and SignalMessaging. You will need an Apple Developer account for this.
On the Capabilities tab, turn off Push Notifications and Data Protection, while keeping Background Modes on. The App Groups capability will need to remain on in order to access the shared data storage. The App ID needs to match the SignalApplicationGroup string set in TSConstants.h.
If you wish to test the Documents API, the iCloud capability will need to be on with the iCloud Documents option selected.
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 pushes will only work with Open Whisper Systems production code signing certificate.