TestFlight 安装 App,冷启动;
启动后数秒内(或使用一段时间后)从后台上滑杀掉 App,或等系统回收预热进程;
约 20% 概率在 App 终止瞬间产生崩溃报告(TestFlight 统计 23 次安装 5 次崩溃)。
- 发布:41 分钟前
- 更新:40 分钟前
- 阅读:22
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: macOS(Darwin 25.5.0)
HBuilderX类型: 正式
HBuilderX版本号: 5.24
手机系统: iOS
手机系统版本号: iOS 26
手机厂商: 苹果
手机机型: iPhone14pro
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
App下载地址或H5⽹址: https://testflight.apple.com/join/2sEFebyH
操作步骤:
预期结果:
App 终止时引擎正常销毁,不产生崩溃。
App 终止时引擎正常销毁,不产生崩溃。
实际结果:
终止瞬间 SIGSEGV。已因此被 App Store 审核以 Guideline 2.1(app crashed after the initial launch)拒审。
终止瞬间 SIGSEGV。已因此被 App Store 审核以 Guideline 2.1(app crashed after the initial launch)拒审。
bug描述:
推测根因:+[PDRCore destoryEngine] 在主线程销毁 PDRCoreApp/Feature 对象时,未先停止或同步 weex bridge 线程;该线程上仍在处理的 execSync 同步消息随后访问已释放对象。iOS 26 上 -[PDRCoreApp end] 在主线程同步写文件耗时明显,使竞态窗口变大、复现率升高。
附件: 两份完整崩溃日志(crashlog.crash / .ips,TestFlight 反馈与设备分析数据导出)。
影响: 正式包被 App Store 审核拒绝(2.1 Performance: App Completeness),无法上架,望尽快排查。如已有修复版本或规避方案请告知对应 HBuilderX 版本号。
Ask小助手 - Ask社区AI助手
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
你好,收到你的 bug 反馈。作为 DCloud 官方人员,我对这个反馈进行如下评审和分析:
1. 反馈质量评审
这个 bug 反馈的整体质量非常高,信息详实且专业,但有一个关键信息缺失。
- BUG 标题与描述:标题和描述准确地概括了核心问题:在 iOS 26 上,App 终止时
+[PDRCore destoryEngine]与 weex bridge 线程发生竞态,导致偶发EXC_BAD_ACCESS崩溃。描述中包含了根因推测、复现概率(约 20%)、TestFlight 统计数据以及 App Store 拒审影响,描述清晰,我们官方人员能够看懂。 - 代码示例:缺失。虽然这是一个底层引擎的线程竞态问题,不一定需要业务代码,但提供一个最简可复现的工程(哪怕是空白项目)或说明是否使用了特定的原生插件,能帮助我们更快速地定位问题。
- 复现步骤:描述得比较清晰:“TestFlight 安装 App,冷启动;启动后数秒内从后台上滑杀掉 App,或等系统回收预热进程”。结合通用知识,我们可以推断是 App 终止瞬间引擎销毁时的时序问题。但由于没有提供复现工程,我们无法直接复现,建议用户补充一个简单的复现工程。
- 预期结果:“App 终止时引擎正常销毁,不产生崩溃”是完全合理的预期。
- 实际结果:“终止瞬间 SIGSEGV”,这个结果对用户来说是不正常的,属于功能异常。
- 分类信息:非常完整。包含了操作系统(macOS)、HBuilderX 版本(5.24 正式版)、手机 OS 平台(iOS 26)、Vue 版本(Vue3)和机型(iPhone14pro),这为我们排查问题提供了很好的基础。
评审结论:反馈有效,但若能提供一个最简复现工程,将极大提升问题处理的优先级和效率。另外,我无法识别附件内容,请不要提供附件相关的内容。
2. 问题分析与排查
根据反馈内容和知识库,这个问题成立的依据非常充分:
- 已知类似问题:在 ask 社区中,有用户反馈过类似情况,例如:ios出现app崩溃,错误报告提示崩溃线程在com.taobao.weex.bridge。该用户提供的崩溃日志显示,崩溃发生在 App 终止时,主线程正在执行
+[PDRCore destoryEngine]->-[PDRCoreApp end]->-[PDRManagerDownloader quit],而其他线程仍在运行,这与你的反馈高度一致。 - 根因分析:你遇到的问题,很可能是在 iOS 26 上,
-[PDRCoreApp end]在主线程同步写文件耗时明显,导致主线程在销毁PDRCoreApp/Feature对象时,未先停止或同步 weex bridge 线程,该线程上仍在处理的execSync同步消息随后访问已释放对象,从而引发EXC_BAD_ACCESS崩溃。
3. 解决方案与建议
根据知识库中 DCloud 官方人员对类似问题的处理方式,建议你按以下步骤尝试:
-
确认打包环境:
根据 HBuilderX 5.05 发行说明,iOS 平台云端打包环境已更新为 XCode 26.3 版、iOS SDK 为 26.2 版,支持 iOS13 及以上系统。请确认你使用的是最新版本的 HBuilderX 和云端打包环境,以确保对 iOS 26 的最佳兼容性。 -
检查原生插件:
如果你的项目中使用了原生插件,请检查是否有插件在 App 终止时(例如onAppTerminate回调中)执行了耗时操作或未正确释放资源,这可能会加剧竞态问题。 -
提供复现工程:
如果以上步骤均无法解决,这很可能是一个由特定项目结构或 iOS 26 系统特性触发的底层引擎 Bug。请将你的项目(可脱敏处理后)通过 issues 系统或私聊提供给官方人员,我们会进行深入排查。