You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Expo本地凭据credentials.json中配置多个Provisioning Profile?

解决Expo EAS多环境Provisioning Profile配置问题

核心问题分析

你遇到两个关键点问题:一是无法在单一credentials.json中区分生产/开发环境的Provisioning Profile;二是内部分发时误用了App Store类型的生产Profile(内部分发要求使用Ad Hoc类型的Profile)。

具体解决步骤

1. 创建多环境凭证配置文件

放弃单一credentials.json,为每个环境单独创建对应配置文件:

  • 开发/内部分发环境:credentials.development.json,配置Ad Hoc类型的Provisioning Profile
  • 生产/App Store分发环境:credentials.production.json,配置App Store类型的Provisioning Profile

示例:credentials.development.json

{
  "android": {
    "keystore": {
      "keystorePath": "android/keystores/release.keystore",
      "keystorePassword": "paofohlooZ9e",
      "keyAlias": "keyalias",
      "keyPassword": "aew1Geuthoev"
    }
  },
  "ios": {
    "provisioningProfilePath": "ios/certs/adhoc-profile.mobileprovision",
    "distributionCertificate": {
      "path": "ios/certs/dist-cert.p12",
      "password": "iex3shi9Lohl"
    }
  }
}

示例:credentials.production.json

{
  "android": {
    "keystore": {
      "keystorePath": "android/keystores/release.keystore",
      "keystorePassword": "paofohlooZ9e",
      "keyAlias": "keyalias",
      "keyPassword": "aew1Geuthoev"
    }
  },
  "ios": {
    "provisioningProfilePath": "ios/certs/appstore-profile.mobileprovision",
    "distributionCertificate": {
      "path": "ios/certs/dist-cert.p12",
      "password": "iex3shi9Lohl"
    }
  }
}

2. 构建时关联对应环境的配置

有两种方式实现环境与凭证文件的绑定:

  • 命令行直接指定:
    开发/内部分发构建:
    eas build --profile development --credentials-path ./credentials.development.json
    
    生产/App Store分发构建:
    eas build --profile production --credentials-path ./credentials.production.json
    
  • 在eas.json中预设配置(更高效):
    修改项目根目录的eas.json,在每个构建profile中添加credentialsPath字段:
    {
      "build": {
        "development": {
          "developmentClient": true,
          "distribution": "internal",
          "credentialsPath": "./credentials.development.json"
        },
        "production": {
          "distribution": "store",
          "credentialsPath": "./credentials.production.json"
        }
      }
    }
    
    之后只需运行eas build --profile development或eas build --profile production,即可自动加载对应环境的凭证配置。

3. 严格匹配Profile类型与分发方式

  • 内部分发(internal):必须使用Ad Hoc类型的Provisioning Profile,这类Profile包含测试设备UDID,允许安装到指定测试设备
  • App Store分发(store):使用App Store类型的Provisioning Profile,用于提交应用到App Store审核

若用App Store类型的Profile做内部分发,必然触发你遇到的报错,务必保证环境与Profile类型一一对应。

内容的提问来源于stack exchange,提问作者Lasharela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 07:15:34