使用Expo+React Native重制iOS应用提交App Store Connect报错求助
解决Expo EAS提交TestFlight时的ENTITY_ERROR.RELATIONSHIP.INVALID错误
你遇到的这个错误提示看起来是App ID关系无效,但实际根源是应用版本号格式不符合Apple的要求——Apple规定提交到TestFlight的应用,短版本号(CFBundleShortVersionString)和构建版本号(CFBundleVersion)必须是[数字].[数字].[数字]的三段式格式,你的项目里构建版本号是单数字,导致提交失败。
以下是具体修改步骤:
1. 修改app.json中的构建版本号
打开项目根目录的app.json,找到expo.ios.buildNumber字段,把当前的"1"改成三段式格式(比如和主版本号一致的"12.0.0",或者递增的"12.0.1"):
"ios": { "supportsTablet": true, "bundleIdentifier": "com.updaty.app", "buildNumber": "12.0.0", // 改为三段式数字格式 "infoPlist": { "NSRemindersUsageDescription": "The app needs to access your reminders.", "NSCalendarsUsageDescription": "The app needs to access your calendar." } }
注:
expo.version字段你已经设置为"12.0.0",符合要求,无需修改。
2. 同步原生info.plist的版本号(仅Bare Workflow)
如果你的项目是Expo Bare Workflow(拥有原生iOS文件),需要同步修改ios/[项目名]/Info.plist中的两个版本字段:
- 将
CFBundleShortVersionString的值改为和app.json中version一致的"12.0.0" - 将
CFBundleVersion的值改为和app.json中ios.buildNumber一致的"12.0.0"
修改后的对应代码片段:
<key>CFBundleShortVersionString</key> <string>12.0.0</string> <key>CFBundleVersion</key> <string>12.0.0</string>
3. 重新构建并提交
执行以下命令重新构建iOS应用并提交到TestFlight:
eas build --platform ios --profile production eas submit --platform ios --profile production
这样修改后,版本号格式符合Apple的要求,就能解决提交时的错误了。
内容的提问来源于stack exchange,提问作者Pedro-Goncal
相关产品推荐
相关产品推荐

