بنقرة واحدة
eas-testflight
将 Expo/React Native 项目通过 EAS Build 构建 iOS 包并提交到 TestFlight。支持从零配置 EAS、构建、提交全流程。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
将 Expo/React Native 项目通过 EAS Build 构建 iOS 包并提交到 TestFlight。支持从零配置 EAS、构建、提交全流程。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
火山引擎语音识别 - 将音频/视频转文字,支持长音频分段识别。
Use when publishing an Obsidian plugin to the community plugin store, creating GitHub Releases for Obsidian plugins, or submitting PRs to obsidianmd/obsidian-releases
一键部署静态网站到 Vercel 和 Cloudflare Pages。支持 HTML/React/Vue 等任意静态项目。
综合画图工具 - AI 生图 (Nanobanana/Gemini) + 图片后处理(拼接/抠图/圆形裁剪/合成)。支持中英文自然语言画图。
统一搜索与抓取能力层 - 整合所有外部信息获取接口(搜索、抓取、下载)
统一通知服务 - 支持 Mac 通知、Telegram、未来可扩展更多渠道
| name | eas-testflight |
| description | 将 Expo/React Native 项目通过 EAS Build 构建 iOS 包并提交到 TestFlight。支持从零配置 EAS、构建、提交全流程。 |
将任意 Expo/React Native 项目构建为 iOS 应用并提交到 TestFlight,用户可直接在 iPhone 上安装测试。
用户提到以下意图时触发:
Step 1.1: 检查项目类型
# 检查是否有 expo 依赖
cat package.json | grep -q '"expo"' && echo "IS_EXPO=true" || echo "IS_EXPO=false"
# 检查是否已有 eas.json
ls eas.json 2>/dev/null && echo "HAS_EAS=true" || echo "HAS_EAS=false"
# 检查是否有 app.json 或 app.config.ts/js
ls app.json app.config.ts app.config.js 2>/dev/null
Step 1.2: 如果不是 Expo 项目,需要先初始化
# 安装 expo 依赖
npx install-expo-modules@latest
# 或者创建新 Expo 项目(如果是从零开始)
npx create-expo-app@latest my-app
Step 1.3: 确保 EAS CLI 已安装
# 检查 eas-cli
npx eas-cli --version 2>/dev/null || npm install -g eas-cli
# 登录 EAS(如果未登录)
npx eas-cli whoami || npx eas-cli login
Step 2.1: 初始化 EAS 项目(如果没有 eas.json)
npx eas-cli init
这会:
extra.eas.projectIdStep 2.2: 创建/更新 eas.json
确保 eas.json 包含 production profile:
{
"cli": {
"version": ">= 3.0.0",
"appVersionSource": "remote"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {
"autoIncrement": true
}
},
"submit": {
"production": {
"ios": {
"appleId": "用户的 Apple ID",
"ascAppId": "App Store Connect App ID(首次会自动创建)",
"appleTeamId": "Apple Team ID"
}
}
}
}
Step 2.3: 配置 iOS 相关设置
确保 app.config.ts/app.json 中包含:
{
ios: {
supportsTablet: true,
bundleIdentifier: "com.yourname.appname", // 唯一 bundle ID
infoPlist: {
ITSAppUsesNonExemptEncryption: false // 避免 TestFlight 审核卡住
}
}
}
重要配置项:
bundleIdentifier: iOS 唯一标识符,格式 com.company.appnameITSAppUsesNonExemptEncryption: false: 声明不使用非豁免加密,跳过出口合规审核Step 3.1: 运行 EAS Build
npx eas-cli build --platform ios --profile production --non-interactive
参数说明:
--platform ios: 只构建 iOS--profile production: 使用 production 配置(用于 App Store / TestFlight)--non-interactive: 非交互模式(首次可能需要去掉此参数以完成 Apple 登录)首次构建注意事项:
Step 3.2: 等待构建完成
构建是远程进行的,通常需要等待。可以通过以下方式查看状态:
# 查看构建状态
npx eas-cli build:list --platform ios --limit 1
# 或通过 URL 查看(构建开始时会输出 URL)
Step 4.1: 使用 EAS Submit
构建完成后,提交到 TestFlight:
npx eas-cli submit --platform ios --profile production --latest --non-interactive
参数说明:
--latest: 使用最新的构建产物--id BUILD_ID 指定具体构建Step 4.2: 首次提交配置
首次提交需要提供:
推荐使用 ASC API Key(更稳定):
# 使用 App Store Connect API Key
npx eas-cli submit --platform ios \
--asc-api-key-path /path/to/AuthKey_XXXXX.p8 \
--asc-api-key-id XXXXX \
--asc-api-key-issuer-id XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Step 5.1: 确认提交状态
npx eas-cli submit:list --platform ios --limit 1
Step 5.2: TestFlight 处理
提交成功后:
如果一切已配置好,可以直接:
npx eas-cli build --platform ios --profile production --non-interactive --auto-submit
--auto-submit 会在构建完成后自动提交到 TestFlight。
A: 运行 npx eas-cli credentials 重新配置 iOS 凭据。
A: 确保 Apple ID 有 App Store Connect 的 Admin 或 App Manager 权限。
A:
ITSAppUsesNonExemptEncryption: false 可自动跳过此步骤A: 在 App Store Connect → TestFlight → 内部测试 → 添加测试人员邮箱
A: 免费账号有排队,付费 EAS 订阅可获得优先构建队列。
| 命令 | 用途 |
|---|---|
npx eas-cli login | 登录 EAS |
npx eas-cli init | 初始化 EAS 项目 |
npx eas-cli build -p ios | 构建 iOS |
npx eas-cli submit -p ios --latest | 提交最新构建到 TestFlight |
npx eas-cli build -p ios --auto-submit | 构建并自动提交 |
npx eas-cli build:list | 查看构建历史 |
npx eas-cli credentials | 管理凭据 |
npx eas-cli whoami | 查看当前登录用户 |
已有成功案例:/Users/liuyishou/usr/projects/inbox/my-first-iphone-app/
07400361-d7fc-462b-a24b-86e0aa3dd704space.manus.my.first.iphone.app.t20260121010932