The following are the system requirements to build Cake Wallet for your iOS device.
macOS 15.3.1
Xcode 16.2
Flutter 3.27.4NOTE: Newer versions of macOS and Xcode may also work, but have not been confirmed to work by the Cake team.
For installing dependency tools you can use brew Install brew.
You may easily install them on your build system with the following command:
brew install automake ccache cmake cocoapods go libtool pkgconfig xz
sudo softwareupdate --install-rosetta --agree-to-licenseDownload and install the latest version of Xcode from macOS App Store.
Run the following to properly initialize Xcode:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunchTo enable iOS build support for Xcode, perform the following:
- Open Xcode
- Navigate to settings
- Open Components tab
- Click "Get" next to iOS 18.2 (or any other version that is showing up as default)
Install Flutter, specifically version 3.27.4 by following the official docs.
NOTE: as 3.27.4 is not the latest version, you'll need to download it from https://docs.flutter.dev/release/archive instead of the link in the docs above.
Install Rust from the rustup.rs website.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shVerify that Flutter and Xcode have been correctly installed on your system with the following command:
flutter doctor
The output of this command should appear like this, indicating successful installations. If there are problems with your installation, they must be corrected before proceeding.
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.27.4, on macOS 15.x.x)
[✓] Xcode - develop for iOS and macOS (Xcode 16.2)Download the latest release tag of Cake Wallet and enter the source code directory:
git clone https://github.com/cake-tech/cake_wallet.git --branch main
cd cake_wallet/scripts/ios/NOTE: Replace main with the latest release tag available at https://github.com/cake-tech/cake_wallet/releases/latest.
We need to generate project settings like app name, app icon, package name, etc, including what specific variant of the app we want to build.
To build Cake Wallet from source, run the following:
source ./app_env.sh cakewalletFor Monero.com, instead do:
source ./app_env.sh monero.comBuild the necessary libraries and their dependencies:
./build_monero_all.sh
./build_mwebd.sh
./build_decred.shNOTE: This step will take quite a while, so be sure you grab a cup of coffee or a good book!
Then run the configuration script to setup app name, app icon, etc:
./app_config.shChange back to the root directory of the Cake Wallet source code and install Flutter package dependencies:
cd ../../
flutter pub getGenerate secrets as placeholders for official API keys etc. along with localization files and mobx models:
dart run tool/generate_new_secrets.dart
dart run tool/generate_localization.dart
./model_generator.shflutter build ios --release --no-codesignThen you can open ios/Runner.xcworkspace with Xcode to archive the application.
If you want to run on a connected device, simply run:
flutter run