Expo 48裸工作流下如何用EAS构建iOS内部测试分发版本?
iOS EAS Build 非交互式构建(Ad Hoc)失败解决方案
问题背景
已在Expo 48项目中添加原生代码,可通过Xcode/Android Studio手动构建生产版本并上传应用商店,但使用EAS构建Ad Hoc配置的内部预览版本(用于QA测试)时,iOS端持续报错,Android端正常。
原构建命令(裸工作流前可正常使用):
eas build --platform ios --profile internal --non-interactive --json
报错信息:
Failed to set up credentials. You're in non-interactive mode. EAS CLI couldn't find any credentials suitable for internal distribution. Run this command again in interactive mode. Error: build command failed. Error: Process completed with exit code 1.
解决步骤
提前在交互式模式下配置并保存iOS凭据
首次在本地以交互式运行构建命令,让EAS CLI自动生成或关联适配Ad Hoc分发的证书与描述文件,完成后EAS会将凭据存储在服务器供后续复用:eas build --platform ios --profile internal校验eas.json的internal配置
确保eas.json中internal构建配置明确指定分发类型为ad-hoc,示例如下:{ "build": { "internal": { "ios": { "distribution": "ad-hoc", "provisioningProfile": "你的Ad Hoc描述文件名称" // 可选,指定已存在的描述文件 }, "android": { // 你的Android构建配置 } } } }手动上传自定义凭据到EAS服务器
若已有手动创建的Ad Hoc证书和描述文件,可通过以下命令关联到对应构建配置:eas credentials --platform ios选择"Manage credentials for build profiles",为internal配置关联已有的Ad Hoc凭据。
配置CI环境的EAS权限
在CI/CD套件中添加EXPO_TOKEN环境变量(从Expo项目控制台生成),确保CI进程有权限访问存储在EAS服务器上的iOS凭据。同步本地与EAS凭据(可选)
若本地原生配置有修改,可同步EAS服务器上的凭据到本地项目:eas credentials sync --platform ios
内容的提问来源于stack exchange,提问作者PrimeTimeTran
相关产品推荐
相关产品推荐

