当我试图调用registerWithOptions时,您知道我在代码和设置中遗漏了什么吗?
我已经有NetworkExtension的权利了。
我已经创造了一个权利

已经在.plist中创建了一个数组

这是我的代码:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:@"Try here", kNEHotspotHelperOptionDisplayName, nil];
dispatch_queue_t queue = dispatch_queue_create("com.myapp.ex", 0);
BOOL isAvailable = [NEHotspotHelper registerWithOptions:options queue:queue handler: ^(NEHotspotHelperCommand * cmd) {
NSLog(@"Sucessfully Registered");
}];发布于 2016-12-27 12:01:40
检查您的应用程序是否与正确的权利文件签名。您可以使用以下命令来完成此操作:
codesign -d --entitlements :- /Users/User/Library/Developer/Xcode/DerivedData/appname-atpabrbgvqunorhiggpf/Build/Products/Debug-iphoneos/AppName.app在输出中,您应该看到以下两个应享权利:
<key>com.apple.developer.networking.HotspotHelper</key>
<true/>
<key>com.apple.developer.networking.networkextension</key>
<array>如果不这样做,可以通过以下线程调试您的协同设计过程:
https://forums.developer.apple.com/message/75928#75928
请记住,hotspot助手代码将只在设备上运行。
作为参考,此代码适用于我(Swift)
var options = [String: NSObject]()
options[kNEHotspotHelperOptionDisplayName] = "Try Here" as NSObject?
NSLog("Lets register", "")
let returnType = NEHotspotHelper.register(options: options, queue: DispatchQueue.main, handler: {(_ cmd: NEHotspotHelperCommand) -> Void in
NSLog("Returned", "")
print(cmd)
if cmd.commandType == NEHotspotHelperCommandType.evaluate || cmd.commandType == NEHotspotHelperCommandType.filterScanList {
if cmd.networkList != nil {
for network: NEHotspotNetwork in cmd.networkList! {
NSLog("Found network \(network.bssid) with \(network.ssid)", "")
if (network.ssid == "Hub") {
print("Confidence set to high for ssid:\(network.ssid)")
}
}
}
}
})发布于 2018-03-20 09:47:25
除了上面的答案,你还必须把这个放在你的Info.plist上
<key>UIBackgroundModes</key>
<array>
<string>network-authentication</string>
</array>https://stackoverflow.com/questions/40447928
复制相似问题