Skip to content

Latest commit

 

History

History
44 lines (32 loc) · 1.4 KB

README.md

File metadata and controls

44 lines (32 loc) · 1.4 KB

iOS client

Note: The iOS client doesn't contain any Rust code (yet) and uses the C client.

Dependencies

You need to be on MacOS

  • Install Exocore C client dependencies. See README.

  • Install Rust targets

    • rustup target add aarch64-apple-ios
    • rustup target add x86_64-apple-ios
  • Install cargo lipo to generate universal binaries.

    • cargo install cargo-lipo
  • Install Cocoapods

    • sudo gem install cocoapods
  • Install Swift Protobuf Plugin

    • brew install swift-protobuf

Building

  • Generate headers & protobuf

    • ./tools/generate.sh
  • Build the universal lib:

    • ./tools/build.sh

Usage

Known issues

  • App gets terminated due to signal 13 when resuming from background.
    • Mio doesn't handle SIGPIPE signal when Tokio tries to write to a closed connection. See (here)[tokio-rs/mio#949].
    • You can ignore the the signal by adding this in your app (ex: in didFinishLaunchingWithOptions):
      func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
          signal(SIGPIPE, SIG_IGN)
          ...
          return true
      }