4

我想构建一个过滤特定网络请求的 macOS 应用程序,因此我需要添加 NetworkExtensions 功能。但在添加 NetworkExtensions 功能后,我收到以下消息:

Your development team, "Potato Dev2", does not support the Network Extensions capability.

上述消息出处的图片:https ://i.stack.imgur.com/H46gE.png

来自Apple 关于“为您的应用添加功能”的文档

该平台以及您是否是 Apple Developer Program 的成员,可能会限制您的应用程序可用的功能

该文档没有明确说明哪些功能需要成为 Apple Developer Program 的一部分。我也不明白为什么我需要成为 Apple Developer Program 的一部分才能在我自己的计算机上编写软件。请注意,至少据我所知,NetworkExtensions 功能不依赖于 Apple 的任何服务(与 HealthKit 或 Game Center 不同)。

那么有没有办法在不加入 Apple Developer Program 的情况下为 macOS 应用程序添加网络扩展功能?

4

2 回答 2

3

如果您在 Mac 上禁用系统完整性保护 (SIP)(在 macOS 恢复环境的终端中),并通过添加到内核的命令行参数来禁用' 权利检查,您应该能够做到这一点。(再次在恢复环境中,)csrutil disableamfidamfi_get_out_of_my_way=1nvram boot-args='amfi_get_out_of_my_way=1'

正如您所注意到的,您需要在代码签名时绕过 Xcode 并codesign直接使用该命令,因为 Xcode 会执行配置文件权利检查。codesign本身不执行此检查。

这适用于基本上允许与 DriverKit 系统扩展相关的任何事情,所以我希望它也可以与网络系统扩展一起使用。

于 2020-08-19T11:41:39.930 回答
0

我找到了问题的答案:要编写使用 NetworkExtension API 的 macOS 软件,您必须是 Apple Developer Program 的成员(每年 100 美元)。有关详细信息,请参阅https://developer.apple.com/support/app-capabilities/

于 2020-08-18T23:48:32.770 回答