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

问题描述

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

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

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

来自Apple's documentation on "Adding Capabilities to Your App"

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

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

那么有没有一种方法可以在不加入Apple Developer Program的情况下向macOS应用添加网络扩展功能

解决方法

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

,

如果您在Mac上(在macOS恢复环境中的终端中的csrutil disable)上禁用了系统完整性保护(SIP),并禁用了{{1 }}的权利检查是通过在内核的命令行参数中添加amfid来进行的。 (同样在恢复环境中,amfi_get_out_of_my_way=1

如您所注意到的,您将需要在代码签名时绕过Xcode并直接使用nvram boot-args='amfi_get_out_of_my_way=1'命令,因为Xcode会执行配置概要文件权利检查。 codesign本身不执行此检查。

这基本上可以用于与DriverKit系统扩展有关的所有事情,所以我希望它也可以与Network System Extensions一起工作。