2016-11-06 4 views
2

Знаете ли вы, что мне не хватает в моем коде и настройках, когда я пытаюсь вызвать registerWithOptions, он всегда возвращает false?Почему NEHotspotHelper registerWithOptions возвращает FALSE?

У меня уже есть разрешение NetworkExtension.

Я уже создал Права enter image description here

И уже создал массив в .plist enter image description here

вот мой код:

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"); 
}]; 

ответ

1

Проверьте ваше приложение подписывает с правильный файл прав. Вы можете сделать это с помощью следующей команды:

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> 

Если вы не можете отлаживать процесс CodeSigning следуя нити здесь:

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)") 
         } 
        } 

       } 



      } 
     })