Skip to main content ホーム クリエイター gmackie vercel-expo-app-template gmacko-release-deploy-mobile
gmacko-release-deploy-mobile Use when (1) building mobile app via EAS for distribution, (2) submitting to App Store or Google Play, (3) managing mobile release workflow. Handles Expo EAS build and submission process.
インストールへ移動 Skills Marketplace コミュニティが作成したAIスキルを発見・探索
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/gmackie/vercel-expo-app-template --skill gmacko-release-deploy-mobileコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
Zipをダウンロード ダウンロード中... name gmacko-release-deploy-mobile description Use when (1) building mobile app via EAS for distribution, (2) submitting to App Store or Google Play, (3) managing mobile release workflow. Handles Expo EAS build and submission process. license MIT compatibility opencode metadata {"phase":"release","tier":"workhorse","permission":"ask"}
Gmacko Mobile Deployment (EAS)
Build and submit mobile applications using Expo Application Services (EAS).
When to Use
Web deployment is complete (or mobile-only release)
Ready to build for TestFlight/Play Store internal testing
Ready to submit to App Store / Google Play
Need to manage app credentials
Prerequisites
EAS CLI installed: npm install -g eas-cli
EAS authenticated: eas whoami
EAS project configured: apps/mobile/eas.json
Apple/Google credentials configured
Workflow
digraph deploy_mobile {
rankdir=TB;
node [shape=box];
start [label="Start Mobile Release" shape=ellipse];
confirm [label="1. Confirm Build Type"];
version [label="2. Update Version"];
credentials [label="3. Verify Credentials"];
build [label="4. Start EAS Build"];
monitor [label="5. Monitor Build"];
success [label="Build Success?" shape=diamond];
submit [label="6. Submit to Stores"];
wait [label="7. Wait for Review"];
document [label="8. Document Release"];
done [label="Mobile Release Complete" shape=ellipse];
failed [label="Build Failed" shape=ellipse];
start -> confirm -> version -> credentials -> build;
build -> monitor -> success;
success -> submit [label="yes"];
success -> failed [label="no"];
submit -> wait -> document -> done;
}
Build Profiles Defined in apps/mobile/eas.json:
Profile Purpose Distribution developmentDev builds with Expo Go Internal previewTestFlight / Internal testing Internal productionApp Store / Play Store Store
Execution Steps
Step 1: Confirm Build Type
I'm preparing a mobile build.
Options :
Preview - Internal testing (TestFlight / Internal track)
Production - Store release (App Store / Play Store)
Platforms :
Which would you like to build?
Step 2: Update Version Check and update version in apps/mobile/app.config.js:
const version = "1.0.0" ;
const buildNumber = "1" ;
Current version: 1.0.0 (build 1)
For this release:
Version: [suggest next version]
Build number: [suggest increment]
Confirm or specify new values.
Step 3: Verify Credentials Check credentials are configured:
eas credentials --platform ios
eas credentials --platform android
## iOS Credentials Check
- [ ] Apple Developer account connected
- [ ] Distribution certificate valid
- [ ] Provisioning profile valid
- [ ] Push notification key configured (if needed)
## Android Credentials Check
- [ ] Keystore configured
- [ ] Service account key available (for Play Store)
- [ ] Bundle signing configured
Step 4: Start EAS Build Preview Build (internal testing):
eas build --profile preview --platform all
eas build --profile preview --platform ios
eas build --profile preview --platform android
Production Build (store release):
eas build --profile production --platform all
eas build --profile production --platform ios
eas build --profile production --platform android
Step 5: Monitor Build
eas build:list --limit 5
eas build:view [build-id]
eas build:view [build-id] --open
Build Status
============
iOS Build: BUILDING / SUCCESS / FAILED
- Build ID: xxx
- Started: [time]
- Duration: [Xm Xs]
Android Build: BUILDING / SUCCESS / FAILED
- Build ID: yyy
- Started: [time]
- Duration: [Xm Ys]
iOS: ~15-30 minutes
Android: ~10-20 minutes
Step 6: Submit to Stores For Preview builds (internal testing):
eas submit --platform ios --profile preview
Android (Internal track):
eas submit --platform android --profile preview
For Production builds (store release):
eas submit --platform ios --profile production
eas submit --platform android --profile production
Step 7: Wait for Review
TestFlight: Usually instant to ~1 hour
App Store: 24-48 hours typical, can take longer
Internal track: Usually instant
Production: Few hours to a few days
## Review Status
### iOS
- Submitted: [timestamp]
- Status: Waiting for Review / In Review / Ready for Sale
- Estimated: [X hours/days]
### Android
- Submitted: [timestamp]
- Status: Pending / In Review / Published
- Estimated: [X hours]
Step 8: Document Release ## Mobile Deployment Record
### iOS
- **Version** : X.Y.Z (build N)
- **Build ID** : [eas-build-id]
- **Submitted** : [timestamp]
- **Status** : [current status]
- **TestFlight** : [available/pending]
- **App Store** : [available/pending/in-review]
### Android
- **Version** : X.Y.Z (versionCode N)
- **Build ID** : [eas-build-id]
- **Submitted** : [timestamp]
- **Status** : [current status]
- **Internal Track** : [available/pending]
- **Production** : [available/pending/in-review]
### Release Notes (for stores)
[Same as GitHub release notes, adapted for store format]
Credential Management
iOS Credentials
eas credentials --platform ios
eas credentials --platform ios
Android Credentials
eas credentials --platform android
eas credentials --platform android
Error Handling
Build Failures
Check build logs:
eas build:view [build-id]
Common iOS issues:
Code signing errors → Check credentials
Pod install failures → Clear pods, rebuild
Xcode version mismatch → Update EAS config
Common Android issues:
Gradle errors → Check dependencies
Keystore issues → Verify credentials
Memory errors → Adjust EAS build config
Submission Failures
iOS rejection reasons:
Missing screenshots
Privacy policy issues
Guideline violations
Android rejection reasons:
Policy violations
Missing permissions justification
Target API level issues
OTA Updates (Expo Updates) For minor updates without store release:
eas update --branch production --message "Bug fixes"
eas update:list
Note: OTA updates are limited to JS/asset changes, not native code.
Red Flags Rationalization Correction "Skip version increment" ALWAYS increment build number for new builds "Credentials are fine, skip check" Verify credentials before every release "Submit to production directly" Test via preview/TestFlight first "Don't need to wait for review" Document expected review time "OTA can fix native issues" Native changes require new build
Integration
Input : Build profile, platforms, version
References : Release summary, eas.json config
Output : Build IDs, store submission status, updated release record
Next : gmacko-release-close or monitor store status