/flowcrypt-ios

FlowCrypt iOS App

Primary LanguageJavaScriptOtherNOASSERTION

flowcrypt-ios

Build Status

FlowCrypt iOS App, download from https://flowcrypt.com/download

Installation

You will need to have Xcode (version 12.4) installed

# clone repo
git clone https://github.com/FlowCrypt/flowcrypt-ios.git && cd flowcrypt-ios
# set up environment
sudo xcode-select --install
curl -sSL https://get.rvm.io | bash -s stable
rvm install 3.0.2
rvm --default use 3.0.2
# install dependencies and pods
make dependencies
bundle exec pod install

Run UI Tests

To run UI tests, you will need a FlowCryptUITests/test-ci-secrets.json file. For this, please reach out to tom@flowcrypt.com to get an NDA signed, and the file will be shared with you. On SemaphoreCI the file is loaded as a secret. If you need to update this file on CI, communicate with Tom to get help. After the update, please email it encrypted to other iOS team members.

Follow steps in installation above, and then:

  • from terminal:
    • make ui_tests - for all ui tests
    • make ui_tests_gmail - for Gmail ui tests
    • make ui_tests_imap - for Imap ui tests
  • from Xcode:
    1. Choose FlowCryptUITests run target on top and select a simulator
    2. select Tests in Navigators area (cmd+6)
    3. Scroll down to FlowCryptUITests in the navigator and run them all or run a particular one

Before running tests, please make sure keyboard is visible in simulator. (cmd+shift+k)

Useful links

UI - Texture documentation

Storage - Realm

Async Operations - PromiseKit

IMAP/SMTP provider - MailCore

Admin - generating .ipa for penetration tester

  1. get uuid of their device and input it into https://developer.apple.com/account/ -> Devices
  2. choose the right build (eg FlowCrypt Enterprise) and choose Any iOS Device (arm64)
  3. Xcode -> Product -> Archive
  4. Distribute app -> Add Hoc -> Next -> Next (automatically manage signing)
  5. This creates a folder at the target where you export it to, and the IPA will be there