iOS Native
Build
Use xcodebuild to build the app. First, identify the scheme and workspace/project:
# List available schemes
xcodebuild -list
Build for simulator:
xcodebuild -scheme <SchemeName> -sdk iphonesimulator -configuration Debug -derivedDataPath build build
Running on Simulator (preferred)
Use npx native-run to launch the app on an iOS simulator. First list available targets:
npx native-run ios --list
If there is more than one option, ask the user which one to use.
Then build and run:
xcodebuild -scheme <SchemeName> -sdk iphonesimulator -configuration Debug -derivedDataPath build build && npx native-run ios --app build/Build/Products/Debug-iphonesimulator/<AppName>.app --target <SimulatorUDID>
Running on a Physical Device
Use xcodebuild with -sdk iphoneos and deploy via xcrun:
xcodebuild -scheme <SchemeName> -sdk iphoneos -configuration Debug -derivedDataPath build build
xcrun devicectl device install app --device <DeviceUDID> build/Build/Products/Debug-iphoneos/<AppName>.app
Finding the App Bundle Path
After a successful build, the .app bundle is located at:
build/Build/Products/Debug-iphonesimulator/<AppName>.app # simulator
build/Build/Products/Debug-iphoneos/<AppName>.app # device
Gotchas
- Always run
xcodebuild -listfirst to get the correct scheme name — do not guess it. - If the project uses a
.xcworkspace(e.g. CocoaPods), pass-workspace <Name>.xcworkspaceinstead of-project. - Use
npx native-run ios --listto get the exact simulator UDID for the--targetflag. - Code signing is not required for simulator builds; for device builds, a valid provisioning profile and team ID are needed. If signing fails, inform the user.
- If
xcodebuildis not found, Xcode Command Line Tools may not be installed (xcode-select --install).
Shell command formatting
Always write commands on a single line — no backslash line continuations. The command ACL uses glob patterns without dotAll, so embedded newlines break matching for commands like xcodebuild *. For long output, pipe to tail/head or write to a file.