Hello,
we are developing Endpoint Security system extension (SE). What is said in https://forums.developer.apple.com/thread/125048 with SIP disabled. With SIP enabled the SE crashes with signature error. The SE is signed and notarized, and our certificate has the com.apple.developer.endpoint-security.client entitlement, so this should be in order.
When I examine the logs, I see this:
default | 11:40:54.534883+0200 | sysextd | starting extension com.***.endpoint via owning category |
error | 11:40:54.536446+0200 | endpointsecurityd | The extension from <decode: missing data> (<decode: missing data>) is using the deprecated default mach service name. Please update the extension to set the <decode: missing data> key in the Info.plist file. |
default | 11:40:54.541284+0200 | sysextd | Extension point confirmed that extension com.***.endpoint is runnable. |
default | 11:40:54.541347+0200 | sysextd | changing state of extension com.***.endpoint to activated_enabled. |
default | 11:40:54.541601+0200 | kernel | proc 11438: load code signature error 4 for file "com.***.endpoint" |
It seems that some value is missing in Info.plist, which sets the mach service name. I see that for Network System Extension there exists the key NEMachServiceName in Info.plist, is there anything equivalent for Endpoint Security? Or is there something else missing in the Info.plist:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>endpoint</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>NSHumanReadableCopyright</key>
<string>$(ES_COPYRIGHT)</string>
<key>NSSystemExtensionUsageDescription</key>
<string>$(ES_USAGE_DESCRIPTION)</string>
</dict>
</plist>
Thank you,
Dan