"splashscreen" : {
"android" : {
"hdpi" : "unpackage/res/app/n480-762.9.png",
"xhdpi" : "unpackage/res/app/n720-1242.9.png",
"xxhdpi" : "unpackage/res/app/n1080-1882.9.png"
},
"ios" : {
"iphone" : {
"portrait-896h@3x" : "unpackage/res/app/n1242-2688.png",
"portrait-896h@2x" : "unpackage/res/app/n828-1792.png",
"iphonex" : "unpackage/res/app/n1125-2436.png"
}
},
"iosStyle" : "default",
"androidStyle" : "default",
"useOriginalMsgbox" : true
} - 发布:2026-06-07 16:41
- 更新:2026-06-07 17:10
- 阅读:157
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: mac26.5.1
HBuilderX类型: 正式
HBuilderX版本号: 5.07
手机系统: Android
手机系统版本号: iOS 26
手机厂商: 苹果
手机机型: iphone17
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
使用启动图片也正常可以安心打包
使用启动图片也正常可以安心打包
实际结果:
使用启动图片也正常可以安心打包
使用启动图片也正常可以安心打包
bug描述:
只要 ios端有启动图片安心打包就会报错
[Info] begin copyFile files to ipa...
[Info] begin replace files to ipa...
[Info] begin replaceFiles file[/Users/chenliang/hsproject/02_zsdq/zsdqgzb/unpackage/cache/wgt/UNI6D37B16/.manifest/splash-iphone-iphonex.png] to [/Users/chenliang/hsproject/02_zsdq/zsdqgzb/unpackage/cache/ipa/HBuilder.xcarchive/Payload/HBuilder.app/Default-812h.png]...
[Info] Could not open output file /Users/chenliang/hsproject/02_zsdq/zsdqgzb/unpackage/cache/ipa/HBuilder.xcarchive/Payload/HBuilder.app/Default-812h.png
[Error] ERROR: Failed to run /Applications/Xcode.app/Contents/Developer/usr/bin/pngcrush -q -iphone -f 0 -rem text /Users/chenliang/hsproject/02_zsdq/zsdqgzb/unpackage/cache/wgt/UNI6D37B16/.manifest/splash-iphone-iphonex.png /Users/chenliang/hsproject/02_zsdq/zsdqgzb/unpackage/cache/ipa/HBuilder.xcarchive/Payload/HBuilder.app/Default-812h.png
[Error] replaceFiles file[/Users/chenliang/hsproject/02_zsdq/zsdqgzb/unpackage/cache/wgt/UNI6D37B16/.manifest/splash-iphone-iphonex.png] to [/Users/chenliang/hsproject/02_zsdq/zsdqgzb/unpackage/cache/ipa/HBuilder.xcarchive/Payload/HBuilder.app/Default-812h.png] failed.
[Error] replace files files failed
[Info] 制作结果:Failed. Reason:
3 个回复
Ask小助手
好的,作为 DCloud 官方人员,我来对这个 bug 反馈进行评审。
1. 反馈内容完整性分析
整体来看,这个反馈在关键信息的呈现上是有效的,但存在一些典型问题,影响了复现效率。
pngcrush工具报错是关键信息。manifest.json中splashscreen的配置片段。这部分代码对于定位问题非常有帮助,明确指出了使用的是“自定义启动图”方式。但是,代码片段本身不能直接运行,这符合预期,因为它是配置文件的一部分。manifest.json中配置好 iOS 自定义启动图(就是用户贴出的那一段),然后点击菜单进行 iOS 的“安心打包”。结论: 该反馈最关键的问题是复现步骤不清晰,且预期/实际结果自相矛盾,需要用户补充明确的操作步骤和正确的结果。
2. Bug 是否成立分析
结论:Bug 可能不成立,这很可能是一个配置问题或环境问题,而非程序缺陷。
根据知识库中的信息进行分析:
pngcrush执行失败,提示Could not open output file。pngcrush是 Xcode 自带的用于优化 PNG 图片的命令行工具,在 iOS 打包过程中会被调用来处理启动图。app-splashscreen > 启动界面设置 > 自定义启动图 > iOS平台自定义启动图条目中,明确提示:“2020年6月30日起,苹果AppStore审核要求应用在启动时,不能使用启动图片,必须改为使用 Storyboard 来制作启动界面,如果需要提交 AppStore 请使用通用启动界面或自定义 storyboard 启动界面。”ios.iphone.iphonex等)。这种方式虽然可能还能打包成功,但苹果官方早已不推荐,且从 2020 年 6 月 30 日起就无法提交 AppStore 审核。Could not open output file可能意味着在新版 macOS 或 Xcode 环境下,pngcrush工具的调用方式或文件写入权限发生了变化,或者该工具本身已被废弃,导致安心打包流程在尝试调用它时失败。同时,用户填写的 HBuilderX 版本号 5.07 超出了当前知识库中的最新正式版 5.07,需要确认是否为 Alpha 版本。pngcrush去处理那些特定分辨率的启动图,从而可能规避此错误。结论: 用户正在使用一种已被苹果官方淘汰的启动图设置方式,这种方式在较新的 Xcode/macOS 环境下容易引发打包工具的兼容性问题。这不是安心打包功能的 bug,而是项目配置不符合当前平台规范导致的。
3. 是否涉及基本概念问题
结论:是的,这涉及对 iOS 平台审核政策和技术演变的基本认知问题。
用户可能不清楚苹果早已强制要求使用 Storyboard 来制作启动界面,而不是使用静态图片。这是一个关于平台规范的基本概念问题,不是 uni-app 或 HBuilderX 特有的缺陷。
最终评审意见及解决方案建议
开发者您好,感谢您的反馈。经评审,该问题可能并非 HBuilderX 的安心打包程序缺陷,而是由于项目使用了已过时的 iOS 启动图配置方式所致。具体分析如下:
manifest.json配置使用的是 iOS “自定义启动图”模式(iosStyle: "default"且配置了各分辨率图片)。苹果从 2020 年 6 月 30 日起已强制要求使用 Storyboard 启动界面,并拒绝使用静态启动图的应用上架。您使用的这种旧模式,在新版 Xcode/macOS 环境下,可能会在调用pngcrush工具处理图片时出现兼容性问题,导致打包失败。manifest.json的可视化界面中,找到“App启动界面配置”,在 iOS 选项卡下选择这两种方式之一进行配置。请尝试更换启动图模式后再次打包,相信可以解决您的问题。
g***@126.com (作者)
用户提供的配置代码使用的是“自定义启动图”模式(配置了 ios.iphone.iphonex 等)。这种方式虽然可能还能打包成功,但苹果官方早已不推荐,且从 2020 年 6 月 30 日起就无法提交 AppStore 审核。你说的这种方式是过时的,但是我今年在 1 月份的时候使用 windows 电脑进行 ios 端 传统打包生成的 ipa 包也正常上架了。
g***@126.com (作者)
云端打包返回的 .ipa 里,Payload 下的 app 目录名是按我的 AppID 命名的(UNI6D37B16.app),但 HBuilderX 本地的替换脚本硬编码写死了 HBuilder.app 这个路径 我觉得这是问题的根本原因吧
要回复问题请先登录或注册
公告
更多>相关问题