Threema-ios, clone of the official github repo from 12.2020
|
4 роки тому | |
---|---|---|
NaClCrypto | 4 роки тому | |
Resources | 4 роки тому | |
ScreenshotsWithData | 4 роки тому | |
TTTAttributedLabel | 4 роки тому | |
Threema | 4 роки тому | |
Threema Tests | 4 роки тому | |
Threema.xcodeproj | 4 роки тому | |
ThreemaData.xcdatamodeld | 4 роки тому | |
ThreemaData.xcmappingmodel | 4 роки тому | |
ThreemaFramework | 4 роки тому | |
ThreemaFrameworkTests | 4 роки тому | |
ThreemaShareExtension | 4 роки тому | |
Vendor | 4 роки тому | |
protobuf | 4 роки тому | |
scripts | 4 роки тому | |
.gitignore | 4 роки тому | |
BUILD_WEBRTC.md | 4 роки тому | |
CONTRIBUTING.md | 4 роки тому | |
Cartfile | 4 роки тому | |
Cartfile.resolved | 4 роки тому | |
LICENSE.txt | 4 роки тому | |
README.md | 4 роки тому | |
SECURITY.md | 4 роки тому | |
ScreenshotsWithDataWork-Info.plist | 4 роки тому | |
SplashScreenThreema2.png | 4 роки тому | |
SplashScreenThreemaWork2.png | 4 роки тому | |
ThreemaForWork-Info.plist | 4 роки тому | |
WizardBg2.png | 4 роки тому | |
iTunesArtwork | 4 роки тому | |
iTunesArtwork@2x | 4 роки тому | |
logo.svg | 4 роки тому |
This repository contains the complete source code of Threema for iOS.
To report bugs and request new features, please contact the Threema support team.
If you find a security issue in Threema, please follow responsible disclosure and report it to us via Threema or by encrypted email, we will try to respond as quickly as possible. You can find the contact details at threema.ch/contact (section "Security").
This source code repository will be updated for every public non-beta release. There will be one commit per released version.
While the source code for Threema for iOS is published under an open source license, Threema is still a paid app. To run the app in combination with our official server infrastructure, you must have bought a license on the App Store.
The app uses two different license check types, depending on the target app:
When creating a new Threema ID using the Threema app bought on the App Store, the app sends the digitally signed App Store receipt to the directory server. This allows the server to verify that you have indeed bought the app, without being able to identify you.
This means that a self-compiled app using the Threema
scheme cannot be used to create a new Threema ID. You can, however, use an app that was purchased in the App Store to create an ID and then export a backup. This backup can then be imported into the self-compiled app.
Note that the ID creation endpoint is monitored for abuse.
If you build the Threema Work target, credentials from the Threema Work subscription must be provided in order to use the app.
Threema
builds and tests the consumer app. (recommended for local testing)ThreemaWork
builds and tests the enterprise version of our app.To get started you need a Mac, Xcode (12.2) and a (free) Apple Developer Account.
brew install carthage
(If you don't have homebrew see their official install instructions.)
sudo xcode-select --switch /Applications/Xcode.app
./scripts/build.sh --dependencies
This checks out and builds Carthage dependencies, and downloads debug and release WebRTC binaries if they are missing. (The script uses a workaround for limitations of Carthage with Xcode 12. If you want to build WebRTC yourself see BUILD_WEBRTC.md.)
You can either build the Threema app (recommended) or Threema Work app.
Note: These setups are for running in the simulator.
Threema.xcproject
in XcodeThreema
and ThreemaShareExtension
target
Threema
as scheme and a simulatorThreema.xcproject
in XcodeThreema Work
and ThreemaForWorkShareExtension
target
Threema Work
as scheme and a simulatorNote: We currently don't support Apple Silicon based Macs, because of current limitations of Carthage with Xcode 12 and our current WebRTC builds.
See "Building" for setting up a running environment. Before running the tests check if you can sucessfully build and run the app.
Threema
as scheme to run the app and framework tests.ThreemaWork
as scheme to run Threema Work specific tests.Due to restrictions by Apple, it’s no easy task to offer reproducible builds for iOS, but we are currently evaluating possible ways to also support reproducible builds for this platform.
Before digging into the codebase, you should read the Cryptography Whitepaper to understand the design concepts.
These are the most important groups of the Xcode project:
ThreemaFramework
: Shared code between the main app and extensionsThreema
: Code of both apps (Threema and Threema Work)ThreemaShareExtension
: Code of share extensionThreema{Framework}Tests
: Test filesOur dependencies are manged with Carthage. Additionally we use WebRTC based on binaries hosted on our servers. If you want to build WebRTC yourself see BUILD_WEBRTC.md.
For the time being, we do not accept contributions via GitHub. If you want to make a contribution, first make sure that you have signed the CLA. You can then submit patches over email by following the instructions at threema.ch/open-source/contributions/.
Threema for iOS is licensed under the GNU Affero General Public License v3.
Copyright (c) 2012-2020 Threema GmbH
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License, version 3,
as published by the Free Software Foundation.
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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
The full license text can be found in LICENSE.txt
.