|
| 1 | +# App Store Submission Checklist |
| 2 | + |
| 3 | +## Pre-Submission Setup |
| 4 | + |
| 5 | +### App Store Connect |
| 6 | +1. Log into [App Store Connect](https://appstoreconnect.apple.com) |
| 7 | +2. Click "My Apps" → "+" → "New App" |
| 8 | +3. Fill in: |
| 9 | + - Platform: iOS |
| 10 | + - Name: Perry |
| 11 | + - Primary Language: English (U.S.) |
| 12 | + - Bundle ID: `com.gricha.perry` |
| 13 | + - SKU: `perry-ios` (or any unique identifier) |
| 14 | + |
| 15 | +### App Information (App Store Connect) |
| 16 | +Fill in the following under "App Information": |
| 17 | +- **Privacy Policy URL**: `https://gricha.github.io/perry/privacy` |
| 18 | +- **Category**: Developer Tools (Primary), Utilities (Secondary) |
| 19 | +- **Content Rights**: Does not contain third-party content |
| 20 | +- **Age Rating**: Complete the questionnaire (all "No" for Perry) |
| 21 | + |
| 22 | +## Screenshots Required |
| 23 | + |
| 24 | +### iPhone 6.9" Display (Required) |
| 25 | +- **Device**: iPhone 16 Pro Max (or simulator) |
| 26 | +- **Resolution**: 1320 x 2868 (portrait) or 2868 x 1320 (landscape) |
| 27 | +- **Count**: 1-10 screenshots |
| 28 | + |
| 29 | +### iPhone 6.5" Display (Required) |
| 30 | +- **Device**: iPhone 11 Pro Max, 12 Pro Max, 13 Pro Max, 14 Plus/Pro Max, 15 Plus/Pro Max |
| 31 | +- **Resolution**: 1242 x 2688 (portrait) or 2688 x 1242 (landscape) |
| 32 | +- **Count**: 1-10 screenshots |
| 33 | + |
| 34 | +### iPad Pro 13" (Required if supporting tablet) |
| 35 | +- **Device**: iPad Pro 12.9" (any generation) |
| 36 | +- **Resolution**: 2064 x 2752 (portrait) or 2752 x 2064 (landscape) |
| 37 | +- **Count**: 1-10 screenshots |
| 38 | + |
| 39 | +### Taking Screenshots |
| 40 | +```bash |
| 41 | +# Run on simulator |
| 42 | +npx expo run:ios --device "iPhone 16 Pro Max" |
| 43 | + |
| 44 | +# Take screenshot: Cmd + S (saves to Desktop) |
| 45 | +# Or: Device → Trigger Screenshot in Simulator menu |
| 46 | +``` |
| 47 | + |
| 48 | +### Suggested Screenshots |
| 49 | +1. Workspace list view (showing some workspaces) |
| 50 | +2. Workspace detail view |
| 51 | +3. Session terminal/webview |
| 52 | +4. Settings page |
| 53 | +5. Empty state with "Add workspace" prompt |
| 54 | + |
| 55 | +## App Icon |
| 56 | + |
| 57 | +**Important**: The App Store icon must NOT have transparency. |
| 58 | + |
| 59 | +Current icon has alpha channel. Before submission: |
| 60 | +1. Open `assets/icon.png` in an image editor |
| 61 | +2. Add a solid background (white: #FFFFFF or match your splash background) |
| 62 | +3. Export as PNG without alpha channel |
| 63 | +4. Replace `assets/icon.png` |
| 64 | + |
| 65 | +## Build & Submit |
| 66 | + |
| 67 | +### Option 1: Using EAS (Recommended) |
| 68 | +```bash |
| 69 | +# Install EAS CLI globally |
| 70 | +npm install -g eas-cli |
| 71 | + |
| 72 | +# Log in to Expo account |
| 73 | +eas login |
| 74 | + |
| 75 | +# Configure project (one-time) |
| 76 | +eas build:configure |
| 77 | + |
| 78 | +# Build for App Store |
| 79 | +eas build --platform ios --profile production |
| 80 | + |
| 81 | +# Submit to App Store (after build completes) |
| 82 | +eas submit --platform ios --latest |
| 83 | +``` |
| 84 | + |
| 85 | +Before running `eas submit`, fill in `eas.json`: |
| 86 | +- `appleId`: Your Apple ID email |
| 87 | +- `ascAppId`: App Store Connect App ID (found in App Information → General → Apple ID) |
| 88 | + |
| 89 | +### Option 2: Using Xcode |
| 90 | +```bash |
| 91 | +# Build release version |
| 92 | +cd mobile |
| 93 | +npx expo run:ios --configuration Release |
| 94 | + |
| 95 | +# Or open in Xcode |
| 96 | +open ios/Perry.xcworkspace |
| 97 | +``` |
| 98 | + |
| 99 | +Then in Xcode: |
| 100 | +1. Select "Any iOS Device (arm64)" as destination |
| 101 | +2. Product → Archive |
| 102 | +3. Window → Organizer → Distribute App |
| 103 | +4. App Store Connect → Upload |
| 104 | + |
| 105 | +## App Review Notes |
| 106 | + |
| 107 | +Add these notes for the reviewer in App Store Connect: |
| 108 | + |
| 109 | +``` |
| 110 | +Perry is a companion app for managing self-hosted Docker development environments. |
| 111 | +
|
| 112 | +To test this app, you need: |
| 113 | +1. A Mac or Linux machine running the Perry agent (https://github.com/gricha/perry) |
| 114 | +2. The Perry CLI installed: npm install -g @gricha/perry |
| 115 | +3. Start the agent: perry agent run |
| 116 | +
|
| 117 | +The app connects to the Perry agent over your local network to: |
| 118 | +- View and manage development workspaces |
| 119 | +- Start/stop workspace containers |
| 120 | +- Access workspace terminal sessions |
| 121 | +
|
| 122 | +Without a running Perry agent, the app will show connection errors, which is expected behavior. |
| 123 | +``` |
| 124 | + |
| 125 | +## Version Management |
| 126 | + |
| 127 | +For each submission: |
| 128 | +1. Update `version` in `app.json` for new features (e.g., "1.0.0" → "1.1.0") |
| 129 | +2. The `buildNumber` auto-increments via EAS, or manually update for Xcode builds |
| 130 | +3. Keep `version` and `CFBundleShortVersionString` in sync |
| 131 | + |
| 132 | +## Post-Submission |
| 133 | + |
| 134 | +- App Review typically takes 24-48 hours |
| 135 | +- Watch for messages in App Store Connect |
| 136 | +- If rejected, address feedback and resubmit |
| 137 | +- Once approved, manually release or set auto-release |
0 commit comments