使用EAS构建React Native iOS应用时,已配置ios.bundleIdentifier却仍提示未定义的问题
EAS构建React Native iOS应用时,已配置ios.bundleIdentifier却仍提示未定义的问题
看起来你遇到的这个问题确实挺闹心的——明明配置文件里清清楚楚写了bundleIdentifier,但EAS构建iOS时就是不认账。我之前也碰到过类似的情况,给你几个实用的排查方向试试:
检查配置结构的优先级
虽然官方文档说明根对象下的平台配置是生效的,但EAS构建偶尔会优先读取expo字段内的配置。你可以试试把ios相关配置移到expo对象内部,调整后的结构大概是这样:import 'dotenv/config'; export default { "name": "raterepositoryapp", extra: { env: process.env.ENV, uri: process.env.APOLLO_URI }, "slug": "rate-repository-app", "version": "1.0.0", "orientation": "portrait", "icon": "./assets/icon.png", "userInterfaceStyle": "light", "splash": { "image": "./assets/splash.png", "resizeMode": "contain", "backgroundColor": "#ffffff" }, "updates": { "fallbackToCacheTimeout": 0 }, "assetBundlePatterns": [ "**/*" ], "android": { "package": "com.webforprofessionals.raterepositoryapp", "versionCode": 1, "adaptiveIcon": { "foregroundImage": "./assets/adaptive-icon.png", "backgroundColor": "#FFFFFF" } }, "web": { "favicon": "./assets/favicon.png" }, "expo": { "extra": { "eas": { "projectId": "ecf6c94b-c096-4a5b-ab41-8dfdd36de96b" } }, // 把ios配置移到expo字段内 "ios": { "supportsTablet": true, "bundleIdentifier": "com.webforprofessionals.rate-repository-app", "buildNumber": "1.0.0" } } }排查是否有其他配置文件干扰
如果你的项目里同时存在app.json和app.config.js,EAS构建可能会优先读取app.json的内容。要是app.json里没配置ios.bundleIdentifier,就会触发这个报错。可以检查下项目里有没有app.json,有的话要么删掉,要么把iOS配置同步过去。清理EAS构建缓存重试
EAS会缓存之前的配置信息,有时候旧缓存会导致配置读取异常。你可以执行eas build --clear-cache命令清理缓存,然后重新发起构建试试。检查eas.json的profile配置
看看你的eas.json里,针对iOS构建的profile有没有单独指定bundleIdentifier。如果有这个配置,它会覆盖app.config.js里的设置,要么删掉这个配置,要么确保值和app.config.js一致。
你可以先从调整配置结构开始试,这个是我之前解决同类问题最常用的方法。
备注:内容来源于stack exchange,提问作者Julius Goddard
相关产品推荐
相关产品推荐

