iOS builds require macOS with Xcode (and Xcode Command Line Tools) installed. They cannot be performed on Linux or Windows.
- Yarn
- NodeJS at the version pinned in
.nvmrc(nvm installreads the file and installs it) - Rust (https://www.rust-lang.org/tools/install)
- Rustup iOS targets (
rustup target add aarch64-apple-ios aarch64-apple-ios-sim x86_64-apple-ios) - CocoaPods (
sudo gem install cocoapods)
The Binding Layer comes from the iOS Prebuilt Bundle that binding-layer.json
pins: the ZingoBindings Swift package with one XCFramework (Zingolib, which
carries the wallet and the Nym proxy) and the Swift sources. The fetch extracts
it under ios/binding-layer/ZingoBindings, where the Xcode project references
it as a local package. The XCFramework contains both the device slice (arm64) and
the simulator slice (arm64 + x86_64), and Xcode picks the slice by the build
destination.
- Clone the repository:
git clone https://github.com/zingolabs/zingo-mobile.git. - Go to the cloned repo
cd zingo-mobile. - From the root of the project, install JS deps:
yarn - Fetch the Binding Layer:
yarn --silent fetch:binding-layer --platform ios. The command needs network access toghcr.iothe first time. TheZingoandZingo Betaschemes run the same fetch as a build pre-action, before Xcode plans the package build, and log it toios/build/fetch_binding_layer.log. A failed pre-action leaves the build running, and the first build phase of theZingotarget then compares the extracted package with the pin and fails naming this command when they differ. - In the
iosdirectory, run:pod install
- In a terminal, run:
yarn start - In a separate terminal, run:
yarn iosYou can also open theiosdirectory in Xcode and run it there.