在 Apple 批准我的 API 请求之前,我可以编译并部署一个 NEHotspotHelper 项目到我的设备吗?

Is it possible for me to compile and deployment a NEHotspotHelper project to my device before Apple approve my API request?

我现在正在实施一个将使用 NEHotspotHelper API 的项目。通过 Xamarin.

我知道这个 API 需要 apple 的批准。所以我已经发送了我的请求并等待响应。

但我想先编写代码并在我的设备中进行测试。

这可能吗?

谢谢!

下面的步骤是我做的。

  1. 申请特批

  2. 修改provisioning profile并添加到Keychain(没有得到最新的认可,选择我们需要的capability即可) [接入WiFiInformation/Hotspot/NetworkExtensions/Wireless配件配置]

  3. 更新Entitlement.plist

3.1 将 "com.apple.developer.networking.HotspotHelper" 设置为 true

3.2 启用 "Access WiFi Information, Hotspot, Network Extensions, and Wireless Accessory Configuration".

  1. 更新Info.plist

4.1 将 "Required background modes" 设置为值 "network-authentication"

完成以上所有操作后。我仍然得到“(0xE8008016)”可执行文件是用无效的权利签名的。

是的,你可以编译它,但我建议你等待苹果的回应。

从历史上看,他们在安全方面一直非常认真,尤其是批准 NEHotspotHelper 使用请求。甚至一些明显的应用程序用途,如物联网设备、智能家居应用程序等也被拒绝了。

引自官方docs:

NEHotspotHelper is only useful for hotspot integration. There are both technical and business restrictions that prevent it from being used for other tasks, such as accessory integration or Wi-Fi based location.

关于 Wi-Fi 管理 API 的有用信息 - FAQ

编辑:关于部署到设备的一些注意事项:

  1. 您可以部署到模拟器,但不会发生任何事情 - 不会调用扫描命令,代码只会注册助手,仅此而已。
  2. 但是,您不能部署到真实设备上,因为要执行此操作,您需要将该权利 "embedded" 放入配置文件中。在您获得 Apple 的许可后,您可以修改您的配置文件,它的底部将有另一个字段 "special entitlements"。

像这样:

不,我不认为你可以在真正的设备上测试,直到你得到特殊的 来自 Apple 的授权。

正如 document 所说:

Before using NEHotspotHelper, you must first be granted a special entitlement (com.apple.developer.networking.HotspotHelper) by Apple.

您收到的错误 (The executable was signed with invalid entitlment) 告诉您您的权利无效的原因。

参考: and Hotspot Network Subsystem Programming Guide.