initial commit
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user