g***@126.com
g***@126.com
  • 发布:2026-06-07 16:41
  • 更新:2026-06-07 17:10
  • 阅读:157

【报Bug】mac 端安心打包报错

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: mac26.5.1

HBuilderX类型: 正式

HBuilderX版本号: 5.07

手机系统: Android

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: iphone17

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:
       "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  
        }

预期结果:

使用启动图片也正常可以安心打包

实际结果:

使用启动图片也正常可以安心打包

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:

2026-06-07 16:41 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

缺少HBuilderX版本及完整报错。需补充版本信息以排查iOS安心打包pngcrush失败问题。
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

好的,作为 DCloud 官方人员,我来对这个 bug 反馈进行评审。

1. 反馈内容完整性分析

整体来看,这个反馈在关键信息的呈现上是有效的,但存在一些典型问题,影响了复现效率。

  • BUG 标题 (合格): “mac 端安心打包报错” 清晰地指出了问题发生的环境(Mac)和功能模块(安心打包)。
  • BUG 描述 (合格): 描述很直接——“只要 ios端有启动图片安心打包就会报错”,结合日志,官方人员能够立即定位到问题发生在替换启动图文件的阶段。日志中 pngcrush 工具报错是关键信息。
  • 代码示例 (部分合格): 用户提供了 manifest.jsonsplashscreen 的配置片段。这部分代码对于定位问题非常有帮助,明确指出了使用的是“自定义启动图”方式。但是,代码片段本身不能直接运行,这符合预期,因为它是配置文件的一部分。
  • 复现步骤 (不合格): 这是该反馈最大的问题。复现步骤仅仅粘贴了 splashscreen 的配置代码。官方人员无法仅凭此代码就完成“复现”。我们需要知道的复现步骤应该是:在一个 Mac 环境下,创建一个 uni-app 项目,在 manifest.json 中配置好 iOS 自定义启动图(就是用户贴出的那一段),然后点击菜单进行 iOS 的“安心打包”。
  • 预期结果与实际结果 (矛盾): 用户填写的“预期结果”和“实际结果”都是“使用启动图片也正常可以安心打包”,这与“BUG 描述”中“只要 ios端有启动图片安心打包就会报错”的描述完全矛盾。从上下文和日志判断,实际结果应该是“打包失败”。这显然是用户填写时的疏忽,但作为评审,必须指出这个问题。
  • 分类信息 (部分合格): 用户提供的信息中,HBuilderX 版本号和 Mac 版本号都很有用。但“手机OS平台”填了 Android,“手机设备机型”填了 iphone17,这些信息与当前反馈的打包问题无关,甚至有误导性(如 iphone17 并不存在)。这属于填写不规范。

结论: 该反馈最关键的问题是复现步骤不清晰,且预期/实际结果自相矛盾,需要用户补充明确的操作步骤和正确的结果。

2. Bug 是否成立分析

结论:Bug 可能不成立,这很可能是一个配置问题或环境问题,而非程序缺陷。

根据知识库中的信息进行分析:

  • 核心报错分析: 日志中的核心错误是 pngcrush 执行失败,提示 Could not open output filepngcrush 是 Xcode 自带的用于优化 PNG 图片的命令行工具,在 iOS 打包过程中会被调用来处理启动图。
  • 知识库依据: 在知识库的 app-splashscreen > 启动界面设置 > 自定义启动图 > iOS平台自定义启动图 条目中,明确提示:“2020年6月30日起,苹果AppStore审核要求应用在启动时,不能使用启动图片,必须改为使用 Storyboard 来制作启动界面,如果需要提交 AppStore 请使用通用启动界面或自定义 storyboard 启动界面。”
  • 问题定位:
    1. 使用方式过时: 用户提供的配置代码使用的是“自定义启动图”模式(配置了 ios.iphone.iphonex 等)。这种方式虽然可能还能打包成功,但苹果官方早已不推荐,且从 2020 年 6 月 30 日起就无法提交 AppStore 审核。
    2. 环境兼容性问题: 用户使用的是 macOS 26.5.1 和 HBuilderX 5.07。这应该是个笔误,结合上下文,推测可能是 macOS 15.x 或类似的较新版本。错误 Could not open output file 可能意味着在新版 macOS 或 Xcode 环境下,pngcrush 工具的调用方式或文件写入权限发生了变化,或者该工具本身已被废弃,导致安心打包流程在尝试调用它时失败。同时,用户填写的 HBuilderX 版本号 5.07 超出了当前知识库中的最新正式版 5.07,需要确认是否为 Alpha 版本。
    3. 与通用启动界面对比: 如果用户改用官方推荐的“通用启动界面”或“自定义 storyboard 启动界面”,打包流程将不会调用 pngcrush 去处理那些特定分辨率的启动图,从而可能规避此错误。

结论: 用户正在使用一种已被苹果官方淘汰的启动图设置方式,这种方式在较新的 Xcode/macOS 环境下容易引发打包工具的兼容性问题。这不是安心打包功能的 bug,而是项目配置不符合当前平台规范导致的。

3. 是否涉及基本概念问题

结论:是的,这涉及对 iOS 平台审核政策和技术演变的基本认知问题。

用户可能不清楚苹果早已强制要求使用 Storyboard 来制作启动界面,而不是使用静态图片。这是一个关于平台规范的基本概念问题,不是 uni-app 或 HBuilderX 特有的缺陷。

最终评审意见及解决方案建议

开发者您好,感谢您的反馈。经评审,该问题可能并非 HBuilderX 的安心打包程序缺陷,而是由于项目使用了已过时的 iOS 启动图配置方式所致。具体分析如下:

  1. 问题根因: 您的 manifest.json 配置使用的是 iOS “自定义启动图”模式(iosStyle: "default" 且配置了各分辨率图片)。苹果从 2020 年 6 月 30 日起已强制要求使用 Storyboard 启动界面,并拒绝使用静态启动图的应用上架。您使用的这种旧模式,在新版 Xcode/macOS 环境下,可能会在调用 pngcrush 工具处理图片时出现兼容性问题,导致打包失败。
  2. 解决方案: 强烈建议您将 iOS 启动图配置更换为官方推荐的“通用启动界面”或“自定义 storyboard 启动界面”。这两种方式不仅符合苹果的审核要求,也能避免当前的打包错误。
    • 您可以在 manifest.json 的可视化界面中,找到“App启动界面配置”,在 iOS 选项卡下选择这两种方式之一进行配置。
    • 具体配置方法请参考官方文档:启动界面设置
  3. 反馈问题补充: 您在反馈中填写的“预期结果”和“实际结果”都是“使用启动图片也正常可以安心打包”,这与“问题描述”中的报错矛盾,且“复现步骤”仅粘贴了代码,缺少明确的操作步骤。希望在后续反馈中能提供更准确、详细的复现步骤,以便我们更高效地定位问题。

请尝试更换启动图模式后再次打包,相信可以解决您的问题。

内容为 AI 生成,仅供参考
g***@126.com

g***@126.com (作者)

用户提供的配置代码使用的是“自定义启动图”模式(配置了 ios.iphone.iphonex 等)。这种方式虽然可能还能打包成功,但苹果官方早已不推荐,且从 2020 年 6 月 30 日起就无法提交 AppStore 审核。你说的这种方式是过时的,但是我今年在 1 月份的时候使用 windows 电脑进行 ios 端 传统打包生成的 ipa 包也正常上架了。

g***@126.com

g***@126.com (作者)

云端打包返回的 .ipa 里,Payload 下的 app 目录名是按我的 AppID 命名的(UNI6D37B16.app),但 HBuilderX 本地的替换脚本硬编码写死了 HBuilder.app 这个路径 我觉得这是问题的根本原因吧

要回复问题请先登录注册