我们在 DriverKit 扩展开发中遇到了一些难题。我们想在 Monterey 上构建和调试。这意味着我们需要使用 Xcode 13。我们还需要支持 Big Sur。不幸的是,我们无法使用 Xcode 13 构建适用于 Big Sur 的 DEXT。
我们将 DRIVERKIT_DEPLOYMENT_TARGET
设置为 19(可能的最低值)。 DEXT 在 Big Sur 上加载良好,但每当用户客户端连接时,DEXT 进程就会崩溃并出现如下断言失败:
Crashed Thread: 0 Dispatch queue: Root
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
dyld2 mode
abort() called
Thread 0 Crashed:: Dispatch queue: Root
0 libsystem_kernel.dylib 0x0000000104bfb3a4 __pthread_kill + 8
1 libsystem_pthread.dylib 0x0000000104de6844 pthread_kill + 272
2 libsystem_c.dylib 0x0000000104b98f24 abort + 124
3 com.apple.DriverKit 0x00000001048b12b4 __assert_rtn + 92
4 com.apple.DriverKit 0x00000001048b151c OSMetaClassBase::QueueForObject(unsigned long long) (.cold.2) + 44
5 com.apple.DriverKit 0x0000000104893068 OSMetaClassBase::QueueForObject(unsigned long long) + 176
6 com.apple.DriverKit 0x0000000104893780 OSMetaClassBase::Invoke(IORPC) + 412
7 com.apple.DriverKit 0x000000010489425c Server(void*, mach_msg_header_t*, mach_msg_header_t*) + 512
8 com.apple.DriverKit 0x00000001048959c8 uiomachchannel(void*, dispatch_mach_reason_t, dispatch_mach_msg_s*, int) + 156
9 libdispatch.dylib 0x0000000104a43b90 _dispatch_mach_msg_invoke + 476
10 libdispatch.dylib 0x0000000104a313ec _dispatch_lane_serial_drain + 308
11 libdispatch.dylib 0x0000000104a448f4 _dispatch_mach_invoke + 464
12 libdispatch.dylib 0x0000000104a313ec _dispatch_lane_serial_drain + 308
13 libdispatch.dylib 0x0000000104a32154 _dispatch_lane_invoke + 456
14 libdispatch.dylib 0x0000000104a33408 _dispatch_workloop_invoke + 1680
15 libdispatch.dylib 0x0000000104a3c9f0 _dispatch_workloop_worker_thread + 764
16 libsystem_pthread.dylib 0x0000000104de75e0 _pthread_wqthread + 276
17 libsystem_pthread.dylib 0x0000000104dee7fc start_wqthread + 8
我在 Apple developer forums 上看到过类似的问题,建议似乎是“升级到 Monterey”,但没有太大帮助。
我无法找到任何有意义的断言消息。我尝试挖掘 XNU 源代码以找到失败的断言,但没有任何运气。
有没有人能够使用 Xcode 13 构建适用于 Big Sur 的 DEXT?非常欢迎任何有关尝试的指示。
最佳答案
我们遇到了同样的问题,Apple 建议分别为 Monterey 和 Big Sur 做一个单独的版本,或者做两个构建并修改安装程序以根据相应的操作系统安装。
关于xcode - 如何构建适用于大苏尔和蒙特雷的 DEXT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72286367/