ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.
ChatSecure is a free and open source XMPP messaging client for iOS that integrates OTR and OMEMO encrypted messaging support, and has optional integrated support for connectivity via the Tor network.
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.
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!
If you would like to contribute/improve a translation:
AppStore.strings
& Localizable.strings
to add a new language or improve an existing translation.There’s a more full list of OTR clients on Wikipedia. A smaller list of clients support the mobile-friendly OMEMO Encryption.
You’ll need CocoaPods installed for most of our dependencies.
$ 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.
$ 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 Secrets-template.plist
as Secrets.plist
:
$ 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.
Open 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 .travis.yml
file.
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).
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 protected].
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:
For a more complete list, check the Podfile and Cartfile.
To regenerate the acknowledgements in Settings.app use LicensePlist and copy the output to Settings.bundle
.
$ brew install mono0926/license-plist/license-plist
$ license-plist --add-version-numbers --output-path ChatSecure/Settings.bundle --suppress-opening-directory
Thank you to everyone who helped this project become a reality! This project is also supported by the fine folks from The Guardian Project, OpenITP, and the Open Technology Fund.