1.8 KiB
Repository instructions
iOS simulator build and deployment
This Apple Silicon project builds the simulator app for arm64. Do not disable
code signing: the Rust build script consumes Xcode's generated simulator
entitlement paths. Do not request an x86_64 simulator build unless the
x86_64-apple-ios Rust target has explicitly been installed.
Use this sequence from the repository root:
cd ios
xcodegen generate
xcodebuild \
-project Gotcha.xcodeproj \
-scheme Gotcha \
-configuration Debug \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
ARCHS=arm64 \
ONLY_ACTIVE_ARCH=YES \
build
gotcha_build_dir="$(
xcodebuild \
-project Gotcha.xcodeproj \
-scheme Gotcha \
-configuration Debug \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
-showBuildSettings -json \
ARCHS=arm64 \
ONLY_ACTIVE_ARCH=YES |
plutil -extract 0.buildSettings.TARGET_BUILD_DIR raw -o - -
)"
xcrun simctl install booted "$gotcha_build_dir/Gotcha.app"
xcrun simctl launch booted de.rfc1437.gotcha
Before deploying, check for a booted simulator with
xcrun simctl list devices available. If none is booted, boot an available
iPhone (currently xcrun simctl boot "iPhone 17 Pro") and open Simulator.
CoreSimulator access may require running xcodebuild and simctl outside the
workspace sandbox.
Generated build data
Use Xcode's default DerivedData location; do not pass -derivedDataPath.
Cargo's ignored target/ directory is a disposable build cache. Cargo does not
bound or garbage-collect stale target artifacts, so check it with
du -sh target and run cargo clean when disk space is worth a full rebuild.
Do not add a custom cache-pruning tool or disable incremental compilation just
to reduce routine cache usage.