ChatSecure is a free and open source encrypted chat client for iPhone and Android that supports OTR encryption over XMPP.
Objective-C Swift Other
Latest commit 0c1444e Sep 28, 2016 @chrisballinger chrisballinger committed on GitHub Merge pull request #564 from N-Pex/memory_audio
Send small audio files from memory
Permalink
Failed to load latest commit information.
ChatSecure.xcodeproj Fix microphone permissions Sep 21, 2016
ChatSecure.xcworkspace Fix #458, #459, acknowledgements Mar 30, 2016
ChatSecure Send small audio files from memory Sep 28, 2016
ChatSecureCore Catch errors where the server does not allow non-english chars in JID… Jun 23, 2016
ChatSecureTests Fixed tests and minor changes to share url decoding Jun 23, 2016
OTRAssets Catch errors where the server does not allow non-english chars in JID… Jun 23, 2016
OTRResources Added support for better buddy search with yap and search controller Apr 27, 2016
Podspecs Fix libsqlfs/SQLCipher in Podfile Sep 13, 2016
Submodules Fix ParkedTextField for Swift 2.3 Sep 15, 2016
configurations Working on CocoaPods 1.0 and Xcode 8 support Sep 13, 2016
media animate in progress Feb 18, 2015
.gitattributes Bump to v2.2.1 and update translations Feb 21, 2014
.gitignore Add OTRResources.bundle Sep 18, 2015
.gitmodules Fix ParkedTextField for Swift 2.3 Sep 15, 2016
.travis.yml Maybe fix Travis Sep 15, 2016
CHANGES.md 3.1 alpha 1 Mar 26, 2015
CONTRIBUTING.md Fix links to CLA Nov 17, 2013
COPYING Change license to GPLv3+ Aug 14, 2012
Gemfile Maybe fix Travis Sep 15, 2016
Gemfile.lock Maybe fix Travis Sep 15, 2016
LICENSE Change license to GPLv3+ Aug 14, 2012
Podfile Pin older version of CocoaLumberjack due to GCDWebServer Sep 26, 2016
Podfile.lock Pin older version of CocoaLumberjack due to GCDWebServer Sep 26, 2016
README.md Fixing tests and Travis Sep 15, 2016

README.md

ChatSecure

Build Status

ChatSecure is a free and open source instant messaging client for iOS and Android that integrates encrypted OTR ("Off the Record") messaging support from the libotr library and the XMPPFramework to handle Jabber/GTalk (XMPP).

Cost

This project 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! :)

bitcoin coinbase donation paypal donation

Localization

transifex localization

If you would like to contribute/improve a translation:

  1. Visit our Transifex project page and make an account if you don't have one already.
  2. Go to the resources subsites AppStore.strings & Localizable.strings to add a new language or improve an existing translation.
  3. Open an issue on Github notifying us of your translation.

Compatibility

There's a more full list of OTR clients on Wikipedia.

Desktop

Mobile

Build Instructions

You'll need Cocoapods for most of our dependencies. Due to some issues with CocoaPods and Xcode 8, we need to use the pre-release version, which we'll install with bundler and our Gemfile.

$ ### gem install cocoapods # Until CocoaPods is fixed use the bundle command below instead.
$ bundle install

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 install # Until CocoaPods is fixed use the bundle commands below instead.
$ bundle exec pod repo update
$ bundle exec 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
$ cp ./configurations/OTR_Codesigning.xcconfig.sample ./configurations/OTR_Codesigning.xcconfig

Then set your own value for PROVISIONING_PROFILE_Debug in OTR_Codesigning.xcconfig to your iOS team provisioning profile identifier to run it on your device. You can get this identifier by temporarily selecting the desired profile in Xcode (Build Settings -> Provisiong Profile), then selecting "Other...".

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.

Contributing

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). For contributing translations, please check out our Transifex page.

  1. Sign the CLA (odt, pdf) and email it to chris@chatsecure.org.
  2. Fork the project and (preferably) work in a feature branch.
  3. Open a pull request on GitHub.
  4. Thank you!

License

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 chris@chatsecure.org.

Third-party Libraries

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.

Acknowledgements

Thank you to everyone who helped this project become a reality! This project is also supported by the fine folks from The Guardian Project and OpenITP.