f2a4290602
macOS 站外加载隧道必须 sysext(appex 仅 App Store 可加载)。转换: - productType app-extension→system-extension;产物 .appex→.systemextension - 嵌入路径 PlugIns→Contents/Library/SystemExtensions(SYSTEM_EXTENSIONS_FOLDER_PATH) - main.swift 入口(NEProvider.startSystemExtensionMode + dispatchMain;sysext 是 可执行程序,需显式 main 而非 appex 的 NSExtensionMain) - Info.plist 加 NEMachServiceName;entitlement 换回 packet-tunnel-provider-systemextension CFBundlePackageType 自动 SYSX,Build Succeeded(关签名)。运行还需 Developer ID 签名 + systemextensionsctl developer on + OSSystemExtensionRequest 激活。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 lines
437 B
Swift
14 lines
437 B
Swift
// main.swift — System Extension 入口
|
|
//
|
|
// System Extension 是可执行程序(非 appex 的 NSExtensionMain 插件),需显式 main。
|
|
// NEProvider.startSystemExtensionMode() 读 Info.plist 的 NEProviderClasses,
|
|
// 按系统请求实例化并运行 PacketTunnelProvider。dispatchMain() 保持进程常驻。
|
|
|
|
import Foundation
|
|
import NetworkExtension
|
|
|
|
autoreleasepool {
|
|
NEProvider.startSystemExtensionMode()
|
|
}
|
|
dispatchMain()
|