xcode - 如何构建适用于大苏尔和蒙特雷的 DEXT

标签 xcode macos iokit driverkit

我们在 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/

相关文章:

xcode - XCode和Qt之间的犹豫

objective-c - Apple Mach-O 链接器 (id) 错误 - 困惑?

Python ctypes 不在 Mac OS X 上加载动态库

macos - 将无代码 KEXT 迁移到无代码 DEXT

objective-c - 如何将文本数据导入sqlite?

Xcode 提示图像的翻译

c - Mac 上的 libevent,进行安装

objective-c - 使用 XIB 文件在 MAC OSX 应用程序中自定义 View

macos - 无法在 Mac OS X 10.11 上获取真实的 IOKit 条目

macos - 如何在 DriverKit 中将我的 dex 与 USB 设备匹配?