Note: The iOS client doesn't contain any Rust code (yet) and uses the C client.
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
-
Generate headers & protobuf
./tools/generate.sh
-
Build the universal lib:
./tools/build.sh
- See iOS example
- 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 }
- Mio doesn't handle