我已经这样做了。
1.在苹果开发者页面添加IOS证书。
2. 添加标识符 App IDs with Network Extension 在 Apple Developer 页面中启用。
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 @"";
但我无法获得任何 wifi 列表。在我的源代码中,变量“isAvailable”返回 false。
为了解决这个问题,我另外尝试了这个。
添加布尔类型和“true”的“ com.apple.developer.networking.HotspotHelper ”
-> 结果:我可以构建项目,但无法在我的设备上安装应用程序。我收到这样的错误消息“可执行文件已使用无效权利签名”。
我不知道为什么不工作。
我是否错过了使用网络扩展库或 NEHotspotHelper 进行身份验证的某些内容?还是我的来源有任何错误?
** 在我向苹果请求网络扩展库后,我从苹果收到了这样的消息。
来自苹果的消息内容
感谢您索取有关网络扩展框架的信息。请注意,自 2016 年 11 月 10 日起,希望使用应用代理、内容过滤器或数据包隧道 API 的开发人员不需要此过程。要使用这些服务,请通过https://developer.apple.com/account/导航到您的开发者帐户,然后为您将用于您的应用程序的应用程序 ID 选择网络扩展功能。
如果您申请 Hotspot Helper API 的权利,您的请求将在我们方便的时候尽快处理。
问候,
开发者技术支持
Apple 全球开发者关系