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

问题描述 投票:0回答:3

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

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

上述消息来源图片:https://i.sstatic.net/H46gE.png

来自 Apple 有关“向您的应用程序添加功能”的文档

平台以及您是否是 Apple 开发者计划的成员,都可能会限制您的应用程序可用的功能

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

有没有一种方法可以在不加入 Apple 开发者计划的情况下向 macOS 应用程序添加网络扩展功能?

macos apple-developer networkextension macos-system-extension
3个回答
5
投票

如果您在 Mac 上禁用系统完整性保护 (SIP)(macOS 恢复环境中的终端中的 csrutil disable),并通过添加

amfid
禁用
amfi_get_out_of_my_way=1
的权利检查,您
应该
能够做到这一点到内核的命令行参数。 (再次恢复环境,
nvram boot-args='amfi_get_out_of_my_way=1'

您在代码签名时需要绕过 Xcode 并直接使用

codesign
命令,因为正如您所注意到的,Xcode 会执行配置文件权利检查。
codesign
本身不执行此检查。

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


1
投票

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


0
投票

@pmdj 这还有效吗?我在蒙特利,在尝试运行系统扩展时面临同样的问题。另外,您能详细说明一下协同设计部分吗?我在禁用 SIP 时尝试了 codesign -sf

path/to/extension
,但仍然遇到相同的错误:

Cannot create a Mac App Development provisioning profile for "com.example.ExampleCam.ExampleCam". Personal development teams, including ***, do not support the System Extension capability.
© www.soinside.com 2019 - 2024. All rights reserved.