Expo 51 iOS Fastlane构建失败:React Native图片打包解析异常求助
解决EAS Build iOS打包时图片无法解析的Archive失败问题
报错信息
▸ ** ARCHIVE FAILED ** ▸ The following build commands failed: ▸ PhaseScriptExecution Bundle\ React\ Native\ code\ and\ images /Users/expo/Library/Developer/Xcode/DerivedData/ClimbingymHK-ffeezmatbbkmrwgumzrsdhnfacxm/Build/Intermediates.noindex/ArchiveIntermediates/ClimbingymHK/IntermediateBuildFilesPath/ClimbingymHK.build/Release-iphoneos/ClimbingymHK.build/Script-00DD1BFF1BD5951E006B06BC.sh (in target 'ClimbingymHK' from project 'ClimbingymHK') ▸ (1 failure) ** ARCHIVE FAILED ** The following build commands failed: PhaseScriptExecution Bundle\ React\ Native\ code\ and\ images /Users/expo/Library/Developer/Xcode/DerivedData/ClimbingymHK-ffeezmatbbkmrwgumzrsdhnfacxm/Build/Intermediates.noindex/ArchiveIntermediates/ClimbingymHK/IntermediateBuildFilesPath/ClimbingymHK.build/Release-iphoneos/ClimbingymHK.build/Script-00DD1BFF1BD5951E006B06BC.sh (in target 'ClimbingymHK' from project 'ClimbingymHK') (1 failure) 退出状态码:65
构建环境
| 项 | 值 |
|---|---|
| xcode_path | /Applications/Xcode.app |
| gym_version | 2.219.0 |
| sdk | iPhoneOS17.4.sdk |
解决方案
1. 检查图片引用路径与命名
- 确保所有图片使用相对路径,避免绝对路径
- 文件名禁用中文、空格或特殊字符(如
&、#),统一用小写字母+下划线格式(例:home_icon.png) - 确认图片文件实际存在于指定路径,无删除或移动情况
2. 配置app.json资源打包规则
在app.json的expo.assets字段中明确指定需要打包的图片目录,确保所有用到的资源被包含:
{ "expo": { "assets": [ "./assets/images/", "./assets/icons/" ] } }
单张特殊路径的图片可单独添加到数组中。
3. 清理EAS与本地缓存
- 本地缓存清理:
npx expo prebuild --clean rm -rf node_modules && npm install - EAS构建强制清理缓存:在
eas.json对应构建profile中添加配置:{ "build": { "production": { "ios": { "cache": { "disabled": true } } } } }
4. 检查Xcode打包脚本
报错中的脚本是React Native默认资源打包脚本,可通过以下方式排查:
- 本地预构建后打开iOS项目,找到
Bundle React Native code and images脚本 - 确认脚本内容无篡改,本地可执行
chmod +x <脚本路径>赋予可执行权限(EAS构建会自动处理,但自定义脚本需注意)
5. 验证版本兼容性
当前使用iOS 17.4 SDK,需确保Expo SDK版本与之兼容:
- 检查
package.json中的expo版本,建议升级到SDK 50+等稳定兼容版本 - 执行
npx expo upgrade更新到最新兼容版本并同步依赖
6. 本地打包验证
先在本地尝试Xcode归档,定位具体问题:
npx expo prebuild --platform ios cd ios xcodebuild -workspace ClimbingymHK.xcworkspace -scheme ClimbingymHK -configuration Release archive -archivePath ./build/ClimbingymHK.xcarchive
若本地报错,可直接在Xcode中查看脚本执行日志,确认是哪张图片解析失败。
内容的提问来源于stack exchange,提问作者user25628453
相关产品推荐
相关产品推荐

