97 lines
2.3 KiB
Markdown
97 lines
2.3 KiB
Markdown
# 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.
|