8***@qq.com
8***@qq.com
  • 发布:2026-11-03 10:04
  • 更新:2026-11-03 10:06
  • 阅读:66

【报Bug】HBuilderX iOS 云打包产出的 IPA 中 Payload 下存在两个 .app 目录,导致第三方加固平台(360 加固)无法处理

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macOS Sequoia 版本15.7.9

HBuilderX类型: 正式

HBuilderX版本号: 5.26

手机系统: iOS

手机系统版本号: iOS 16

手机厂商: 苹果

手机机型: ipone X

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

App下载地址或H5⽹址: https://pan.baidu.com/s/1Z0xN1Tf4qz1L3jeqZ7YLdg?pwd=wmdn

操作步骤:

在 HBuilderX 中配置 iOS 云打包,Bundle ID 设为 www.jgLoveAnJi.com
上传 loveAnJi_2026.mobileprovision 描述文件和 aianji_2026.p12 私钥证书
选择「打正式包」进行云打包
解压产出的 IPA,检查 Payload/ 目录

预期结果:

IPA 的 Payload 下应只有一个 .app 目录(即用户应用本体),不应残留 HBuilder.app 空壳
IPA 中的 CFBundleIdentifier 应与 manifest.json 中配置的 Bundle ID 一致(www.jgLoveAnJi.com)
IPA 中嵌入的描述文件应与用户上传的描述文件一致

实际结果:

Payload 下出现两个 .app(HBuilder.app 空壳 + UNI2495E0B.app 主体)
Bundle ID 被描述文件中的 com.fp.package 覆盖,忽略了 manifest.json 配置
嵌入的描述文件 Profile Name 为 UniAppFB-Distribution-20260323,非用户上传文件

bug描述:

问题标题
HBuilderX iOS 云打包产出的 IPA 中 Payload 下存在两个 .app 目录,导致第三方加固平台(360 加固)无法处理

环境信息
IPA 文件名:UNI2495E0B20261021170130(1).ipa
uni-app AppID:
UNI__2495E0B
应用名称:爱安吉
应用版本:3000.9.0(versionCode: 10160)
打包时间:2026-10-21 17:01
打包类型:正式包(非自定义调试基座)
manifest.json 中配置的 iOS Bundle ID:www.jgLoveAnJi.com
问题描述
Bug 1:IPA 中出现两个 .app 目录
标准 iOS IPA 的 Payload/ 目录下应只有一个 .app 目录,但本次云打包产出的 IPA 中存在两个:

1) Payload/HBuilder.app/ — 空壳,无实际用途

字段 值
Info.plist 完全为空 {}
可执行二进制 不存在(无 HBuilder 主程序文件)
内容 仅含 Pandora/apps/UNI2495E0B/www/(uni-app web 资源)
_CodeSignature 存在
embedded.mobileprovision 12,467 bytes
2) Payload/UNI2495E0B.app/ — 真正的应用主体

字段 值
Info.plist 完整配置(5,043 bytes)
可执行二进制 UNI2495E0B(24,797,888 bytes / 24.8MB)
Frameworks 含多个第三方框架(TTSDKPlayerCoreNormal、TTSDKTools、VolcApiEngine、libvcn 等)
原生插件 个推推送、活体检测、建行钱包、字节跳动 SDK 等
Assets.car 511,128 bytes
embedded.mobileprovision 17,507 bytes
影响:360 加固等第三方安全加固平台扫描到两个 .app 后无法识别主应用,加固流程失败。

Bug 2:实际 Bundle ID 与 manifest.json 配置不一致
manifest.json 中配置的 Bundle ID:www.jgLoveAnJi.com
IPA 中实际写入的 CFBundleIdentifier:com.fp.package
IPA 内 UNI2495E0B.app/Info.plist 中:

CFBundleIdentifier = "com.fp.package"
Bug 3:嵌入的描述文件与上传的描述文件疑似不一致
用户上传的描述文件:loveAnJi_2026.mobileprovision
IPA 中嵌入的描述文件信息:
字段 值
Profile Name UniAppFB-Distribution-20260323
AppIDName FP Package
application-identifier YQM5H857L5.com.fp.package
TeamName Digital Heaven (Beijing) Internet & Technology Co., Ltd.
TeamIdentifier YQM5H857L5
创建时间 2026-03-23 12:59:51
过期时间 2027-03-23 12:46:14
证书类型 企业分发证书(ProvisionedDevices 为空,get-task-allow=false)
嵌入描述文件的 Profile Name 为 UniAppFB-Distribution-20260323,与用户上传的文件名 loveAnJi_2026.mobileprovision 不匹配,疑似云打包系统使用了非用户上传的描述文件。

Info.plist 关键字段(UNI2495E0B.app)
CFBundleDisplayName: 爱安吉
CFBundleExecutable: UNI2495E0B
CFBundleIdentifier: com.fp.package ← 与 manifest.json 配置不符
CFBundleShortVersionString: 3000.9.0
CFBundleVersion: 10160
MinimumOSVersion: 15.0
marketChannel: www.jgLoveAnJi.com|UNI2495E0B|127612140908|

2026-11-03 10:04 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

感谢提交这份 bug 反馈。整体来看,这份反馈的信息组织比较规范:三个问题分点清晰、附带了 IPA 内部结构的关键字段数据(目录内容、Info.plist 字段、描述文件信息、文件大小等)、分类信息(HBuilderX 5.26 正式版、macOS 15.7.9、iOS 16、Vue2、云端打包)完整,属于质量较高的反馈。下面从官方评审角度给出分析意见。

一、反馈完整性评审

已具备:BUG 标题、描述、复现步骤、预期结果、实际结果、分类信息均已提供,IPA 内部量化数据对排查很有帮助。这类云打包产物问题本身不依赖代码示例,但建议补充以下信息(请直接以文字形式补充,我无法识别附件,也暂不需要附件):

  1. manifest.json 中 "app-plus" -> "distribute" -> "ios" 节点的完整配置。按官方文档,该节点下 appid 字段即“iOS平台云端打包使用的Bundle ID",mobileprovision 为 profile 文件路径、p12 为证书文件路径,请确认这几项的实际配置值与配置方式(manifest 源码配置,还是云打包界面选择/填写)。参考:iOS平台云端打包配置、manifest.json App iOS 配置
  2. 云打包对话框中的关键选择:证书与描述文件是每次手动上传,还是使用了云端保存的历史证书记录?打包界面上 iOS Bundle ID 输入框当时显示的值是什么?是否勾选了“快速安心打包”等选项?
  3. loveAnJi_2026.mobileprovision 文件本身的内部信息(这是判断 Bug 2/3 定责的关键):请在本机执行 security cms -D -i loveAnJi_2026.mobileprovision 查看,并贴出其中的 Name、AppIDName、application-identifier、TeamIdentifier、创建/过期时间。
  4. 这套 Apple 账号/证书此前是否打包过其他应用(尤其是 AppIDName 为 "FP Package"、Bundle ID 为 com.fp.package 的应用)?需排除云打包界面历史证书记录选择串用的可能。
  5. 项目中是否配置了自定义 Info.plist(nativeResources/ios)或原生插件(nativeplugins/uts 插件)?如有请列出清单。
  6. HBuilder.app 空壳目录的完整文件列表(文字描述即可)。

二、Bug 成立性分析

Bug 1(Payload 下出现两个 .app):标准 iOS IPA 的 Payload 下应只包含一个应用主目录 Payload/XXX.app,官方文档描述 ipa 结构时也是以 Payload/XXX.app 为唯一应用目录(参考:uts 插件 iOS Extension 文档)。你反馈的“空壳 HBuilder.app + 主体 UNI2495E0B.app”不符合标准结构;且 HBuilder.app 正是 iOS 基座的默认应用目录名(历史云打包案例中主应用目录即为 HBuilder.app,参考 ask 案例 209122、ask 案例 205079),残留空壳会导致 360 加固等按标准结构扫描 IPA 的第三方平台无法识别主应用。该现象异常,反馈成立、值得受理;但知识库中暂无关于此现象成因的官方说明,需结合云端打包日志定位,请补充上述第 5、6 项信息。另外你提供的数据中两个 .app 内嵌的 embedded.mobileprovision 大小不同(12,467 vs 17,507 bytes),说明两者经过了不同签名处理,这也是打包流程异常的佐证。

Bug 2(CFBundleIdentifier 与 manifest 配置不一致):manifest.json 中 iOS 平台 appid 字段定义为“iOS平台云端打包使用的Bundle ID",预期产物 CFBundleIdentifier 应与之一致。但 iOS 签名机制下,最终写入的 Bundle ID 受描述文件约束——你贴出的嵌入描述文件 application-identifier 为 YQM5H857L5.com.fp.package,与 com.fp.package 是自洽的。即 Bug 2 与 Bug 3 很可能是同一根因:打包时实际使用的描述文件对应 com.fp.package。当前证据无法区分是“上传/选择了错误的描述文件”还是“云端串用了描述文件”,请先补充第 3、4 项信息。

Bug 3(嵌入描述文件与上传描述文件疑似不一致):需要指出,描述文件的文件名与内部 Profile Name 没有必然对应关系(下载后可任意重命名),仅凭“文件名 loveAnJi_2026 与 Profile Name UniAppFB-Distribution-20260323 不一致”不能证明云打包未使用你上传的文件,必须比对文件内容。若比对后确认上传文件确实是 www.jgLoveAnJi.com 对应的描述文件,而 IPA 中嵌入了 com.fp.package 的描述文件,则该问题成立且性质较严重;若上传文件本身就是 FP Package 的描述文件,则属于证书选择/上传环节问题,在云打包界面重新选择正确证书与描述文件后重新打包即可验证。

另外提示:嵌入描述文件为企业分发(In House)类型(ProvisionedDevices 为空、get-task-allow=false),企业证书打包的 ipa 仅用于企业内部分发,不能用于 App Store 上架,请确认这与你的分发场景一致。

三、处理建议

  1. 先执行第 3 项的描述文件内容比对,这是当前定责的关键一步。
  2. 核对云打包界面中证书、描述文件、Bundle ID 三项的实际取值,确认未误用历史记录中其他应用的证书。
  3. 你当前使用的 HBuilderX 5.26 距最新正式版(5.34)已有多个版本差距,作为 bug 受理的常规确认步骤,建议先用最新正式版重新云打包一次,确认问题在最新版本上是否仍可复现,以便官方确认问题范围。
  4. 若最新版仍复现“双 .app 目录”或“描述文件不一致”,请将上述补充信息一并提供,官方将结合云端打包日志进一步排查。
内容为 AI 生成,仅供参考

要回复问题请先登录或注册