# iOS Release This project uses the local Xcode/App Store Connect path, not EAS. ## Current Native Settings - Bundle ID: `com.soconnor.hotdog` - Team ID: `V98X722US5` - Version: `1.0` - Build number: `1` - Scheme: `hotdog` - Workspace: `ios/hotdog.xcworkspace` ## One-Time Setup 1. Create the app record in App Store Connect using bundle ID `com.soconnor.hotdog`. 2. Create an App Store Connect API key in App Store Connect > Users and Access > Integrations > App Store Connect API. 3. Authenticate the App Store Connect CLI: ```bash npx @onmyway133/asc-cli auth login ``` The CLI stores the private key in macOS Keychain by default. Do not commit `AuthKey_*.p8`. For upload commands that use `xcrun altool`, also make the key available to Apple tooling. The usual local setup is: ```bash mkdir -p ~/.appstoreconnect/private_keys cp /path/to/AuthKey_YOURKEYID.p8 ~/.appstoreconnect/private_keys/ export ASC_KEY_ID=YOURKEYID export ASC_ISSUER_ID=YOUR-ISSUER-UUID ``` ## Build And Upload Run a static check first: ```bash npm run typecheck ``` Archive a release build: ```bash npm run ios:archive ``` Export an App Store Connect IPA: ```bash npm run ios:export ``` The export uses `config/ExportOptions.AppStore.plist`. Upload the IPA: ```bash npm run ios:upload ``` The uploaded build will appear in App Store Connect after Apple finishes processing it. ## App Store Connect CLI Use the `asc` script for App Store Connect management: ```bash npm run asc -- auth status --validate npm run asc -- apps list npm run asc -- builds list --app-id APP_ID npm run asc -- testflight groups list --app-id APP_ID ``` Common release flow after a build is processed: ```bash npm run asc -- apps list npm run asc -- versions list --app-id APP_ID npm run asc -- builds list --app-id APP_ID npm run asc -- versions attach-build --version-id VERSION_ID --build-id BUILD_ID ``` Submit for review only after metadata, screenshots, pricing, privacy details, and review details are complete: ```bash npm run asc -- submit create --app-id APP_ID --version-id VERSION_ID --platform IOS ``` ## Notes - Use TestFlight first, even for a small app. - Increment the build number before each upload. - Keep `.p8`, `.p12`, provisioning profiles, and local env files out of git. - If Xcode signing fails, open `ios/hotdog.xcworkspace`, select the `hotdog` target, and confirm the Apple team/signing settings.