You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成Intune iOS SDK后,TestFlight应用锁屏数分钟后崩溃

Flutter集成Intune iOS SDK后锁屏静置崩溃问题(iOS 18.1.1)

问题描述

我们的Flutter应用集成Intune iOS SDK后,TestFlight版本出现异常:iPhone 14(iOS 18.1.1)锁屏静置20-30分钟后重新打开,会显示黑屏或Intune锁屏并崩溃,弹出"[应用名称]已崩溃,是否向开发者分享更多信息?"提示,应用前台运行时无异常。移除Intune SDK后崩溃问题消失,但应用必须保留Intune功能,已尝试升级系统、Xcode、SDK版本(20.1.2→20.2.1)均无效。

复现步骤

  • 安装集成Intune SDK的应用全新TestFlight构建版本;
  • 使用启用策略(如禁止复制粘贴、共享应用数据、强制PIN码等)的Intune托管账户登录;
  • 锁定iOS设备并静置20-30分钟;
  • 解锁设备,等待3秒即可看到崩溃弹窗。

崩溃堆栈

Thread 4 Crashed:
0   dyld                            0x00000001b4cba1a8 void dyld3::MultiMapBase<prebuilt_objc::ObjCStringKeyOnDisk, prebuilt_objc::ObjCObjectOnDiskLocation, prebuilt_objc::HashObjCStringKeyOnDisk, prebuilt_objc::EqualObjCStringKeyOnDisk>::forEachEntry<... + 140 (Map.h:612)
1   dyld                            0x00000001b4cb5c04 prebuilt_objc::forEachClass(dyld4::RuntimeState*, dyld3::MultiMapView<prebuilt_objc::ObjCStringKeyOnDisk, prebuilt_objc::ObjCObjectOnDiskLocation, prebuilt_objc::HashObjCStringKeyOnDisk, prebuilt_o... + 120 (PrebuiltObjC.cpp:79)
2   dyld                            0x00000001b4c65e54 dyld4::APIs::_dyld_for_each_objc_class(char const*, void (void*, bool, bool*) block_pointer) + 200 (DyldAPIs.cpp:2502)
3   libobjc.A.dylib                 0x000000018c5b081c getPreoptimizedClass + 132 (objc-opt.mm:361)
4   libobjc.A.dylib                 0x000000018c5b044c getClassExceptSomeSwift(char const*) + 40 (objc-runtime-new.mm:2125)
5   libobjc.A.dylib                 0x000000018c5b02a8 look_up_class + 92 (objc-runtime-new.mm:8563)
6   Foundation                      0x000000018de9abd8 NSClassFromString + 152 (NSObjCRuntime.m:140)
7   BoardServices                   0x00000001a8956800 +[BSXPCServiceConnectionProxy invokeMethod:onTarget:withMessage:forConnection:completion:] + 100 (BSXPCServiceConnectionProxy.m:171)
8   BoardServices                   0x00000001a8939e38 __63-[BSXPCServiceConnectionEventHandler connection:handleMessage:]_block_invoke + 1156 (BSXPCServiceConnectionEventHandler.m:349)
9   BoardServices                   0x00000001a8938f64 BSXPCServiceConnectionExecuteCallOut + 240 (BSXPCServiceConnection.m:1307)
10  BoardServices                   0x00000001a8937d2c -[BSXPCServiceConnectionEventHandler connection:handleMessage:] + 176 (BSXPCServiceConnectionEventHandler.m:313)
11  BoardServices                   0x00000001a893887c -[BSXPCServiceConnection _connection_handleMessage:fromPeer:withHandoff:] + 524 (BSXPCServiceConnection.m:1099)
12  libdispatch.dylib               0x0000000196fa8370 _dispatch_call_block_and_release + 32 (init.c:1549)
13  libdispatch.dylib               0x0000000196faa0d0 _dispatch_client_callout + 20 (object.m:576)
14  libdispatch.dylib               0x0000000196fb16d8 _dispatch_lane_serial_drain + 744 (queue.c:3934)
15  libdispatch.dylib               0x0000000196fb2214 _dispatch_lane_invoke + 432 (queue.c:4025)
16  libdispatch.dylib               0x0000000196fb1560 _dispatch_lane_serial_drain + 368 (queue.c:3934)
17  libdispatch.dylib               0x0000000196fb2214 _dispatch_lane_invoke + 432 (queue.c:4025)
18  libdispatch.dylib               0x0000000196fbd258 _dispatch_root_queue_drain_deferred_wlh + 288 (queue.c:7193)
19  libdispatch.dylib               0x0000000196fbcaa4 _dispatch_workloop_worker_thread + 540 (queue.c:6787)
20  libsystem_pthread.dylib         0x00000002177d3c7c _pthread_wqthread + 288 (pthread.c:2696)
21  libsystem_pthread.dylib         0x00000002177d0488 start_wqthread + 8

环境信息

  • 设备:iPhone 14,系统:iOS 18.1.1
  • Intune iOS SDK版本:20.1.2(已尝试升级至20.2.1无效)
  • 开发平台:Flutter 3.24.5,使用FlutterMethodChannel集成Intune SDK
  • 开发环境:macOS 15.1.1、Xcode 16.0

可能的解决方案

  1. 提前初始化Intune SDK相关逻辑
    崩溃堆栈显示问题出现在dyld类查找阶段,结合锁屏唤醒场景,推测是SDK在应用唤醒时延迟加载类导致异常。可在AppDelegate的applicationWillEnterForeground方法中,提前触发Intune SDK的初始化或类加载逻辑,避免系统回收缓存后出现查找失败。

  2. 调整Flutter与Native交互时机
    确保Native侧Intune SDK完全就绪后,再处理Flutter侧的MethodChannel调用。可在应用唤醒时添加状态标记,待SDK初始化完成后再允许Flutter发起交互请求,避免异步调用冲突。

  3. 禁用dyld预优化排查
    在Xcode中添加DYLD_NO_PREOPTIMIZATION环境变量并设置为YES,禁用iOS的dyld预优化加载机制。若问题消失,说明是iOS 18预优化与Intune SDK存在兼容性问题,需等待官方修复或提交反馈。

  4. 排查Intune策略影响
    逐步关闭部分Intune策略(如先禁用禁止复制粘贴、数据共享等,仅保留PIN码策略),测试是否为特定策略触发崩溃。若定位到特定策略,可调整策略配置或联系微软确认兼容性。

  5. 提交官方支持工单
    由于升级SDK无效且问题仅出现在iOS 18.1.1的TestFlight版本,大概率是SDK与iOS 18新特性的兼容性问题。直接向微软提交支持工单,提供完整崩溃日志、复现步骤和环境信息,获取针对性修复建议。

内容的提问来源于stack exchange,提问作者Sunil Saini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 16:20:55