mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-09 14:48:08 -05:00
This pull request adds full iOS build and run support for the DarkFi app, including device, simulator and Xcode integration. It introduces ios-release and ios-sim Makefile targets that build signed app bundles for devices and simulators. Add SDK detection and Apple Silicon arch via xcrun / xcodebuild and improved error messages. A new ios-xcode target generates a minimal DarkFi.xcodeproj using the external build system so the app can be archived and uploaded directly from Xcode. The changes include an ios-Info.plist , updated entitlements and embedded.mobileprovision handling to fix crash-on-launch issues and allow fullscreen UI and arbitrary network loads. iOS-specific path handling and ui_consts are added (with #cfg(target_os = "ios") and HOME/Documents logic) to avoid sandbox panics and unwritable home directory crashes while keeping Tor/arti working. Asset copying is standardized so the assets content (including forest_720x1280 / 1920x1080 and locales) is laid out in the bundle in a way that matches the code’s VID_PATH / LOCALE_PATH expectations and macroquad ’s resource lookup on iOS. Cargo dependencies are tuned for iOS by keeping required pieces like tor-dirmgr, excluding incompatible ones like tracing-android and ensuring no problematic iOS-only libraries cause link or runtime errors.
Unix (Linux/Mac)
Install rustup and cargo install cargo-limit, then run:
make
Windows
Install rustup and follow the instructions.
If you get the error "VCRUNTIME140.dll was not found", then install Microsoft Visual C++ Redistributable.
Android
Make sure you have podman installed. Then run:
# You only need to build the container once
podman build -t apk .
make android
To debug any issues, you can enter an interactive terminal using make cli.
To delete everything, run podman system reset.
Useful Dev Commands
This is just for devs. Users ignore this.
Debugging Missing Symbols
"hb_ft_font_create_referenced"
nm libharfbuzz_rs-5d6b743170eb0207.rlib | grep hb_ | less
Resolve Dependency Issues
cargo tree --target aarch64-linux-android --invert openssl-sys
Examine the APK
apktool d target/android-artifacts/release/apk/darkwallet.apk -o dw-apk