arthai-marketplace

/deploy-ios

Build and deploy iOS apps to Simulator, TestFlight, or App Store. Auto-detects Xcode project config, resolves signing, and validates builds.

Synopsis

/deploy-ios [simulator|testflight|appstore] [--device name] [--scheme scheme]

--clean is also accepted to force a clean build.

When to use it

Prerequisites

Quickstart

/deploy-ios

What you’ll see: the detected workspace/project and scheme, a simulator build (the default target), then the app installed and launched in the iOS Simulator with a summary of device, OS version, and bundle ID.

Examples

/deploy-ios                                    # build + launch in the default simulator
/deploy-ios simulator --device "iPhone 16 Pro" # pick a specific simulator device
/deploy-ios testflight --scheme MyApp          # archive + upload to TestFlight
/deploy-ios appstore                           # archive + upload for App Store review
/deploy-ios simulator --clean                  # clean build when caches are suspect

Arguments & flags

Flag Values Default What it does
target simulator, testflight, appstore simulator Where the build goes
--device simulator device name most recent iPhone simulator available; falls back to any available iOS simulator if no iPhone found Which simulator to boot and install on
--scheme Xcode scheme name asks if multiple Which scheme to build
--clean off Cleans before building

What it does

  1. Detects the project — finds the .xcworkspace (or .xcodeproj), lists schemes, detects the package manager (SPM/CocoaPods/Carthage), warns if Pods are stale, and reads build settings for bundle ID and deployment target. If multiple schemes exist and you didn’t pass --scheme, it asks which to use — a user-confirmation checkpoint. If there’s no Xcode project, it stops.
  2. Resolves the target — simulator (default), TestFlight, or App Store.
  3. Builds — simulator builds use a Debug configuration against your chosen device; TestFlight/App Store builds clean-archive in Release with automatic code signing (manual signing supported if you provide the profile and identity — see Prerequisites above).
  4. Deploys — simulator: installs and launches the app, opening Simulator.app if needed. TestFlight/App Store: exports the archive and uploads directly to App Store Connect using your App Store Connect API key (see Prerequisites); if no key is configured, it produces a local IPA and tells you to upload via Transporter or the App Store Connect web UI.
  5. Validates — simulator: confirms the app installed and launched without crashing, reports device/OS/bundle/build time. Uploads: confirms success and reminds you TestFlight processing takes 15–30 minutes.

After two failed build attempts it stops, shows the full error log, and asks for guidance.

Fastlane integration

If your project has a fastlane/ directory, the skill automatically uses your existing Fastlane lanes instead of raw xcodebuild — for simulator builds, fastlane run build_app; for TestFlight, fastlane pilot upload; for App Store, fastlane release if that lane exists. Make sure your lanes support the target you’re deploying to (simulator, testflight, appstore); the skill checks fastlane lanes first.

Output & artifacts

Troubleshooting

Problem Fix
No signing certificate Sign in to your Apple Developer account: Xcode → Settings → Accounts
No profiles found Enable Automatic Signing in Xcode, or create the provisioning profile in the Apple Developer portal
Simulator not found Run xcrun simctl list devices and pass a valid name via --device
xcodebuild: error: ... not found (scheme) Run xcodebuild -list and pass the correct --scheme
Stale/missing Pods Run pod install in the project directory, then retry
SPM resolution failed Run xcodebuild -resolvePackageDependencies, then retry
Upload times out Retry the upload and check your network connection
Build mysteriously failing Retry with --clean — and after 2 failures the skill stops with the full log rather than guessing