This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

使用 EAS Submit 提交到 Apple App Store

编辑页面

了解如何使用 EAS Submit 将您的 iOS 应用提交到 Apple App Store。


EAS Submit 是将你的 iOS 应用上传到 Apple App Store 的推荐方式。eas submit 命令在你的计算机上和 CI/CD 环境中的工作方式相同。EAS Workflows 是在构建完成后自动运行该命令的最简单方式。EAS Submit 支持 macOS、Linux 和 Windows,因此你无需 Mac 即可发布 iOS 构建版本。

前置条件

Prerequisites

3 requirements

1.

注册 Apple Developer 帐户

要向 Apple App Store 提交应用,必须拥有付费的 Apple Developer 帐户。请在 Apple Developer 门户 注册。

2.

在应用配置中包含 bundle identifier

app.json 中包含应用的 bundle identifier:

app.json
{ "ios": { "bundleIdentifier": "com.yourcompany.yourapp" } }

3.

安装 EAS CLI 并使用 Expo 帐户进行身份验证

安装 EAS CLI 并使用 Expo 帐户登录:

Terminal
npm install --global eas-cli && eas login

构建生产应用

你需要一个用于提交的生产 .ipa 文件。使用 EAS Build 创建一个:

Terminal
eas build --platform ios --profile production

或者,使用 eas build --platform ios --profile production --local 在你自己的电脑上构建,或使用 Xcode 构建。

使用 eas submit 提交

构建完成后,将其提交到 Apple App Store:

Terminal
eas submit --platform ios

该命令会引导你选择构建版本,首次运行时会提示你输入 Apple ID,并将二进制文件上传到 App Store Connect。构建版本处理完成后会显示在 TestFlight 中(通常需要 10-15 分钟)。要发布到生产环境,请登录 App Store Connect,然后提交构建版本以供 App 审核。

配置提交配置文件

eas.json 中添加提交配置文件,并填写你的 App Store Connect 应用 ID:

eas.json
{ "submit": { "production": { "ios": { "ascAppId": "your-app-store-connect-app-id" } } } }
如何查找 ascAppId
  1. 登录 App Store Connect,然后选择你的团队。
  2. 导航至 Apps
  3. 点击你的应用。
  4. 确保 App Store 标签页处于激活状态。
  5. 在左侧面板的 General 下,选择 App Information
  6. 你的 ascAppId 会显示在 General Information 下,名称为 Apple ID

请参阅 eas.json 参考,了解所有可用选项。

一步完成构建和提交

eas build 传递 --auto-submit,即可自动将完成的构建交给 EAS Submit:

Terminal
eas build --platform ios --auto-submit

详情请参阅自动化提交

使用 EAS Workflows 自动化

EAS Workflows 在 EAS 基础设施上运行相同的提交步骤,可由 git push 触发,也可以通过 CLI 手动运行。首先,配置 App Store Connect API Key,以便工作流能够以非交互方式向 Apple 进行身份验证:

Terminal
eas credentials --platform ios
  1. 选择 production 构建配置。
  2. 使用你的 Apple Developer 帐户登录,并按照提示操作。
  3. 选择 App Store Connect:管理 API Key
  4. 选择 设置项目以使用 API Key 进行 EAS Submit
更希望使用你自己的凭据?

App Store Connect API Key: 创建你自己的 API Key,并在 eas.json 中使用 ascApiKeyPathascApiKeyIssuerIdascApiKeyId 字段进行设置。

App 专用密码: 通过 EXPO_APPLE_APP_SPECIFIC_PASSWORD 环境变量提供你的 App 专用密码,并在 eas.json 中使用 appleId 字段设置你的 Apple ID。

创建名为 .eas/workflows/submit-ios.yml 的工作流文件,内容如下:

.eas/workflows/submit-ios.yml
name: Submit iOS on: push: branches: ['main'] jobs: build_ios: name: Build iOS app type: build params: platform: ios profile: production submit_ios: name: Submit to TestFlight needs: [build_ios] type: testflight params: build_id: ${{ needs.build_ios.outputs.build_id }}

每次向 main 推送时,都会构建 iOS 应用并将其提交到 TestFlight。预打包的 testflight 作业还可以将构建共享给内部和外部测试群组。使用以下命令手动触发工作流:

Terminal
eas workflow:run submit-ios.yml

请参阅工作流示例指南,了解更多模式。

使用其他 CI/CD 服务

您可以从任何 CI/CD 服务运行 eas submit,例如 GitHub Actions、GitLab CI 等:

Terminal
eas submit --platform ios --profile production

这需要使用个人访问令牌向您的 Expo 账户进行身份验证。在 CI 服务中设置 EXPO_TOKEN 环境变量,这样 eas submit 就可以以非交互方式运行。

手动备用方案

如果 EAS Submit 暂时不可用,你可以使用 Mac 上的 Xcode 手动上传到 Apple App Store。

使用 Xcode 手动提交 iOS 应用

在 macOS 上使用 Xcode 将 iOS 应用归档并上传到 App Store Connect。