Hi,
We are trying to find an ideal build environment where we can build both kernel extensions(to support macOS10.13, 10.14 and 10.15) as well as System extensions (for macOS10.16). We need your opinion on the same.
In our product, we have a network kernel extension and IOKit kernel extension. We built them using Xcode9.0 (MacOSX10.13.sdk) on macOS 10.13.6. And the supported operating systems are 10.13, 10.14 and 10.15.
Per WWDC2019, we know that kernel extensions will no longer be supported from 10.16 onwards. Hence we are trying to have a build environment where we can build both kernel extensions as well as System extensions.
We built Kernel extensions using Xcode11.3 (MacOSX10.15.sdk) on macOS 10.15.2. We were not able to load them on 10.13, 10.14 operating systems. So we did the following experiments.
Experiment#1: We altered Xcode 11.3 (copied MacOSX10.13.sdk at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/… along side MacOSX10.15.sdk). Built kernel extensions using 10.13 SDK. Then we were able to load them on 10.13 and 10.14 too.
Experiment#2: We are planning to install two Xcodes i.e., Xcode9.0 and Xcode11.3 on mac OS 10.14.4. We will build kernel extensions using SDK10.13 (from Xcode9.0). We will build system extensions using SDK10.15 (from Xcode11.3).
Regarding experiment #1 and experiment#2, are these ways supported and recommended by Apple?
Thanks
Ravi