Skip to content

构建与发布

发布标识

应用配置中需要保持稳定的字段包括:

  • ios.bundleIdentifier:iOS 应用唯一标识;
  • android.package:Android 应用唯一标识;
  • version:面向用户的版本号;
  • ios.buildNumber:iOS 构建号;
  • android.versionCode:Android 递增版本号。

商店发布后的包标识不能直接更换。构建号必须满足对应商店的递增规则。

EAS 初始化

bash
npx eas-cli@latest login
npx eas-cli@latest build:configure

初始化会创建 eas.json 并关联 Expo 项目。团队应将构建配置提交到仓库,账号凭证和敏感环境变量由 EAS 凭证与环境系统管理。

构建配置

json
{
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "preview": {
      "distribution": "internal"
    },
    "production": {
      "autoIncrement": true
    }
  }
}
Profile用途
development包含开发客户端,用于日常原生功能调试
preview接近生产配置,供测试人员内部分发
production提交应用商店的正式构建

执行构建

bash
npx eas-cli@latest build --profile development --platform android
npx eas-cli@latest build --profile preview --platform all
npx eas-cli@latest build --profile production --platform all

--platform all 会分别创建 Android 和 iOS 构建。iOS 商店发布需要 Apple Developer Program 账号,Android 商店发布需要对应的开发者账号。

提交商店

bash
npx eas-cli@latest submit --platform android
npx eas-cli@latest submit --platform ios

EAS Submit 负责上传构建产物,不会代替商店后台中的隐私信息、截图、分级、审核说明和发布范围配置。

EAS Update

EAS Update 可发布与当前原生运行时兼容的 JavaScript、样式和资源更新。以下变化仍需重新构建原生应用:

  • 新增或升级包含原生代码的依赖;
  • 修改权限、Entitlement、Manifest 或 Info.plist;
  • 修改 Config Plugin 或自定义原生模块;
  • 升级导致原生运行时变化的 Expo SDK 或 React Native。

应配置明确的 runtimeVersion 策略,防止更新被发送到不兼容的原生构建。

发布检查

  • 在 preview 或 production 构建中验证登录、支付、推送和 Deep Link;
  • 分别检查 Android 与 iOS 权限文案和拒绝流程;
  • 检查图标、启动页、应用名称、版本号与包标识;
  • 验证环境变量指向生产服务且不包含客户端密钥;
  • 保留构建日志、提交记录和可回滚的版本信息。

参考资料

基于 MIT 许可发布