3

当我尝试调用 registerWithOptions 它总是返回 false 时,你知道我的代码和设置中缺少什么吗?

我已经拥有 NetworkExtension Entitlement。

我已经创建了一个权利 在此处输入图像描述

并且已经在 .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");
}];
4

2 回答 2

2

检查您的应用是否使用正确的权利文件进行签名。您可以使用以下命令执行此操作:

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

请记住,热点帮助程序代码只会在设备上运行。

作为参考,此代码适用于我(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)")
                        }
                    }

                }



            }
        })
于 2016-12-27T12:01:40.417 回答
0

除了上面的答案,你必须把它放在你的 Info.plist

<key>UIBackgroundModes</key>
<array>
   <string>network-authentication</string>
</array>
于 2018-03-20T09:47:25.633 回答