Redistributing ChatSecure Code on the App Store
Even though this project is open source, this does not mean you can reuse this code when distributing closed source commercial products. Please contact us to discuss licensing options before you start building your product.
If you are an open source project, please contact us to arrange for an App Store redistribution exception. For more information about why this is required, please read this blog post from Open Whisper Systems.
Cost for End Users
Downloading the ChatSecure app is 100% free because it is important that all people around the world have unrestricted access to privacy tools. However, developing and supporting this project is hard work and costs real money. Please help support the development of this project! We now also accept Bitcoin via Coinbase!
If you would like to contribute/improve a translation:
- Visit our Transifex project page and make an account if you don't have one already.
- Go to the resources subsites
Localizable.stringsto add a new language or improve an existing translation.
- Open an issue on Github notifying us of your translation.
- dino (Linux, macOS, Windows) Supports OMEMO
$ brew install carthage $ gem install cocoapods
Download the source code and don't forget to pull down all of the submodules as well.
$ git clone https://github.com/ChatSecure/ChatSecure-iOS.git $ cd ChatSecure-iOS/ $ git submodule update --init --recursive
Now you'll need to build the dependencies.
$ carthage bootstrap --platform ios # or carthage update --platform ios --cache-builds $ bash ./Submodules/CPAProxy/scripts/build-all.sh $ bash ./Submodules/OTRKit/scripts/build-all.sh $ pod repo update $ pod install
Next you'll need to create your own version of environment-specific data. Make a copy of
$ cp OTRResources/Secrets-template.plist OTRResources/Secrets.plist
You'll need to manually change the Team ID under Project -> Targets -> ChatSecure -> Signing. The old .xcconfig method doesn't seem to work well anymore.
ChatSecure.xcworkspace in Xcode and build.
Note: Don't open the
.xcodeproj because we use Cocoapods now!
If you're still having trouble compiling check out the Travis-CI build status and
Thank you for your interest in contributing to ChatSecure! To avoid potential legal headaches and to allow distribution on Apple's App Store please sign our CLA (Contributors License Agreement).
- Sign the CLA (odt, pdf) and email it to firstname.lastname@example.org.
- Fork the project and (preferably) work in a feature branch.
- Open a pull request on GitHub.
- Thank you!
Software License Agreement (GPLv3+) Copyright (c) 2015, Chris Ballinger. All rights reserved. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
If you would like to relicense this code to distribute it on the App Store, please contact me at email@example.com.
This software additionally references or incorporates the following sources of intellectual property, the license terms for which are set forth in the sources themselves:
The following dependencies are bundled with the ChatSecure, but are under terms of a separate license:
- libsignal-protocol-c - Provides Signal Protocol support for OMEMO.
- OTRKit - Objective-C libotr wrapper library for OTR encryption
- CPAProxy - Objective-C Tor Wrapper Framework for iOS
- XMPPFramework - XMPP support
- YapDatabase - YapDatabase is a pretty awesome key/value/collection store built atop sqlite for iOS & Mac.
- Mantle - Model framework for Cocoa and Cocoa Touch
- JSQMessagesViewController - Messages UI library for iOS
- MBProgressHUD - a nice looking progress HUD
- MWFeedParser - Methods for escaping HTML strings
- SSKeychain - Utilities to store passwords securely in the iOS keychain
- Appirater - nags people to give reviews
- UserVoice - in-app support forum
- HockeySDK - crash reporting framework
- DAKeyboardControl - support for swiping down keyboard in chat view
To regenerate the acknowledgements in Settings.app use LicensePlist and copy the output to
$ brew install mono0926/license-plist/license-plist $ license-plist --add-version-numbers --output-path ChatSecure/Settings.bundle --suppress-opening-directory
- Nick Hum - awesome icon.
- Icons8 - Various new "iOS 7"-style icons
- Mateo Zlatar - World Icon
- Goxxy - Google Talk icon.
- Yes designed by Kristin Hogan from the Noun Project
- No designed by Kristin Hogan from the Noun Project
- Wifi designed by useiconic.com from the Noun Project
- Warning designed by Lorena Salagre from the Noun Project
- Many many more!