Files
Gotcha/AGENTS.md
2026-07-30 14:59:26 +02:00

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.