移动/游戏
需要发布 Expo/React Native 或现有原生…
通过 EAS(付费服务)构建、提交并监控 iOS/Android 应用商店发布,覆盖 Expo、其他 React Native 项目及现有原生应用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要发布 Expo/React Nati特定
解决思路
- SwiftUI/UIKit 且无 React Native runtime 的项目:在修改构建配置前先读 references/native-ios.md,保持 Xcode 工程和 Swift 代码作为应用事实来源;不要套用下方 Expo/React Native quick-start 与 development-client 示例。
- 原生 Android 且无 React Native runtime 的项目:保留现有原生构建配置;提交参考 references/play-store.md,不要套用 Swift/iOS 设置说明;目前没有专门的原生 Android 设置 walkthrough。
- Expo/React Native 应用:使用下方 quick-start,然后查阅相关商店 reference。
- 给现有原生应用添加 React Native 屏幕:使用 expo-brownfield 完成集成;分发时回到本流程。
- 在初始原生 iOS 设置、修改版本号/bundle IDs/icons 后、或诊断上传被拒时,使用 references/native-ios.md 中的 archive 和 icon 检查。
- 常规发布遵循 EAS build/submit 流程,并执行 references/testflight.md 中的处理与可用性检查;EAS build 成功或 submission 已排队不等于 Apple 已接受、tester 可访问或 App Store 已发布。
- 按需查阅 references:workflows.md 用于自动化商店发布和 PR previews 的 CI/CD workflows;testflight.md 用于提交 iOS builds 到 TestFlight beta;app-store-metadata.md 用于管理 App Store metadata 和 ASO 优化;play-store.md 用于提交 Android builds 到 Google Play Store;ios-app-store.md 用于 iOS App Store 提交和审核流程;native-ios.md 用于无 Expo runtime 的原生 Swift/SwiftUI/UIKit 设置、版本管理和 archive 验证。
- 安装 EAS CLI:npm install -g eas-cli;然后运行 eas login。
- 初始化 EAS:npx eas-cli@latest init;eas init 会链接或创建 EAS 项目;运行 eas build:configure 在 eas.json 创建 build profiles;如果已有发布设置,保留现有 project 和 store identifiers。
- 生产构建 iOS App Store:npx eas-cli@latest build -p ios --profile production。
- 生产构建 Android Play Store:npx eas-cli@latest build -p android --profile production。
- 同时构建两个平台:npx eas-cli@latest build --profile production。
- iOS 构建并提交到 App Store Connect:npx eas-cli@latest build -p ios --profile production --auto-submit。
- Android 构建并提交到 Play Store:npx eas-cli@latest build -p android --profile production --auto-submit。
- Expo/React Native 的 iOS TestFlight 快捷流程:npx testflight。
- 在 eas.json 中配置示例:cli.version 为 ">= 16.0.1",appVersionSource 为 "remote";build.production.autoIncrement 为 true,build.production.ios.resourceClass 为 "m-medium";build.development.developmentClient 为 true,distribution 为 "internal";submit.production.ios.appleId 为 "your@email.com",ascAppId 为 "1234567890";submit.production.android.serviceAccountKeyPath 为 "./google-service-account.json",track 为 "internal";原生 Swift profiles 在 references/native-ios.md。
- iOS 原生 Swift 应用:使用 references/native-ios.md 中的显式 build/submit 流程。
- iOS Expo/React Native 应用:使用 npx testflight 作为快速 TestFlight 流程。
- iOS 凭据:通过 eas credentials 配置 Apple credentials;凭据设置见 references/testflight.md。
- iOS App Store 提交:见 references/ios-app-store.md。
- Android:设置 Google Play Console service account。
- Android:配置 tracks:internal → closed → open → production;详细设置见 references/play-store.md。
- 自动化发布:用 EAS Workflows 自动化 build → submit → update pipeline 用于 CI/CD;商店发布示例见 references/workflows.md;要编写或校验 workflow YAML,使用 eas-workflows skill,它基于 live workflow schema。
- 版本管理:设置 appVersionSource: "remote" 让 EAS 自动管理版本号。
- 检查当前版本:eas build:version:get。
- 手动设置版本:eas build:version:set -p ios;该命令会提示输入值。
- 在设置或修改原生 iOS 版本管理、或诊断重复 build number 时,检查 archived CFBundleVersion;remote counter 本身不能证明 Xcode 使用了它。
- 监控:列出最近的 builds:eas build:list。
- 检查 build 状态:eas build:view BUILD_ID。
- 检查 submissions(在 EAS CLI 23.2.0 验证):eas submit:list -p ios --json;eas submit:view SUBMISSION_ID --json。
- 解释缺失命令前检查 CLI 版本:这些 submission 命令在 23.2.0 可用,但在测试过的 18.6.0 安装中不可用;可用 pinned npx eas-cli@23.2.0 调用,而不改变全局安装。
- 查看实时 Apple 状态和重试指导见 references/testflight.md。
- 当 JSON 结果省略底层失败时,跟随返回的 log URLs。
- 报告精确 build ID/version 和最远已验证的发布状态。
- 提交反馈:如果遇到错误、误导性或过时信息,运行 npx --yes submit-expo-feedback@latest --category skills --subject "eas-app-stores" "<actionable feedback>";仅在有具体可操作内容时提交,并包含尽量多相关上下文。
- 如果 AI agent 反复失败或用户不得不接管 Expo 任务,加载 expo-skill-feedback skill 并遵循其 eval-candidate flow,而不是复用上面的反馈命令。
适用边界 · 注意事项
- 不适用于部署 Expo 网站或 Expo Router API routes:这些由 eas-hosting 覆盖,流程为 npx expo export -p web 然后 eas deploy。
- 不适用于仅给现有原生应用添加 React Native 屏幕:该集成使用 expo-brownfield,分发才回到本流程。
- 不适用于无法承担 EAS 服务费用、Apple Developer 或 Google Play 会员费用的场景;云端构建消耗 EAS plan 资源,EAS 服务有免费/付费限制,Apple/Google 会员另计。