如何使用 NEHotspotHelper(IOS,objective-c)获取可用的 WiFi 列表

Kim*_*nny 5 certificate objective-c ios xcode8 nehotspothelper

我已经这样做了。

1.在Apple Developer页面添加IOS证书。

2. 在 Apple Developer 页面中添加启用 Network Extension 的标识符 App ID。

3. 在 Apple Developer 页面中添加配置文件。

4. 创建 Xcode 项目并输入在苹果开发者页面上制作的正确包 ID。并签下合适的球队。

5. 添加能力和库(网络扩展框架)。

6. 5后,在我的Xcode项目中自动生成Entitlement文件。

7.上次我写的代码是这样的。

NSLog(@"List Scan START");

NSMutableDictionary* options = [[NSMutableDictionary alloc] init];
    [options setObject:@"Try Here" forKey:kNEHotspotHelperOptionDisplayName];
    dispatch_queue_t queue = dispatch_queue_create("com.miro.wifilist", 0);

    BOOL isAvailable = [NEHotspotHelper registerWithOptions:options queue:queue handler: ^(NEHotspotHelperCommand * cmd) {
        if (cmd.commandType == kNEHotspotHelperCommandTypeEvaluate || cmd.commandType == kNEHotspotHelperCommandTypeFilterScanList ) {
            for (NEHotspotNetwork* network in cmd.networkList) {
                NSLog(@"%@", network.SSID);
            }
        } else {
            NSLog(@"there is no available wifi");
        }
    }];

if (isAvailable) {
    NSLog(@"true");
} else {
    NSLog(@"false");
}

NSLog(@"List scan END");
return @"";
Run Code Online (Sandbox Code Playgroud)

但我无法获得任何 wifi 列表。在我的源代码中,变量“isAvailable”返回 false。

为了解决这个问题,我另外尝试了这个。

添加“ com.apple.developer.networking.HotspotHelper ”布尔类型和“true”

-> 结果:我可以构建项目,但无法在我的设备上安装该应用程序。我收到这样的错误消息“可执行文件的签名无效”。

我不知道为什么不起作用。

我是否错过了使用网络扩展库或 NEHotspotHelper 进行身份验证的内容?或者我的来源有什么错误?

** 在我向苹果请求网络扩展库后,我从苹果收到了这样的消息。

来自苹果的消息内容


感谢您请求有关网络扩展框架的信息。请注意,自 2016 年 11 月 10 日起,希望使用应用代理、内容过滤器或数据包隧道 API 的开发人员不需要此过程。要使用这些服务,请在https://developer.apple.com/account/导航到您的开发者帐户,并为您将用于您的应用程序的 App ID 选择网络扩展功能。

如果您申请 Hotspot Helper API 的权利,我们将尽快处理您的请求。

问候,

开发者技术支持

Apple 全球开发者关系


Leo*_*eon 2

值得强调的是,实际上不可能在 iOS 设备上获取可用 Wifi 热点的列表。请阅读这篇文章:

Apple 开发者论坛:列出可用的 wifi 网络