NE***Manager.saveToPreferencesWithCompletionHandler 上的错误

Posted

技术标签:

【中文标题】NE***Manager.saveToPreferencesWithCompletionHandler 上的错误【英文标题】:Error on NE***Manager.saveToPreferencesWithCompletionHandler 【发布时间】:2016-04-21 09:32:29 【问题描述】:

我的目标平台是 OS X 10.10 / Xcode 7.2 我正在尝试保存 NE***Manager 的首选项,但在 domain=NEConfigurationErrorDomain: 中出现错误:

Error Domain = NEConfigurationErrorDomain Code = 10 "permission denied" UserInfo = 0x610000073280 NSLocalizedDescription = permission denied

下面的示例代码:

let manager = NE***Manager.sharedManager()
manager.loadFromPreferencesWithCompletionHandler  (error) -> Void in
    if((error) != nil) 
        print("*** load preferences error")
        print(error!)
        exit(0)
    
    if manager.`protocol`  == nil 
        let proto = NE***ProtocolIKEv2()
        proto.serverAddress = "host.net"
        proto.username = "username"
        Keychain.save("***password", data: "password".dataUsingEncoding(NSUTF8StringEncoding)!)
        proto.passwordReference = Keychain.load("***password") // I got the same error without passwordReference too
        proto.authenticationMethod = NE***IKEAuthenticationMethod.None
        manager.`protocol` = proto
        manager.enabled = true
        manager.localizedDescription = "***"
        manager.saveToPreferencesWithCompletionHandler( (error) -> Void in
            if((error) != nil) 
                print("*** Save to Preferences error")
                print(error!)
                exit(0)
            
            else 
                do 
                    try manager.connection.start***Tunnel()
                    print("Started error")
                 catch 
                    print("Unexpected error")
                    
                
            
        )
    
)

我还找到了下一个日志条目:

Jan 10 14:24:51 y.local nehelper[196]: app has the com.apple.developer.networking.***.api entitlement but not the application-identifier entitlement
Jan 10 14:24:51 y.local nehelper[196]: app Failed to obtain authorization right for 3: no authorization provided
Jan 10 14:24:51 y.local app[33627]: __55-[NE***Manager saveToPreferencesWithCompletionHandler:]_block_invoke142: failed to save the new configuration: Error Domain=NEConfigurationErrorDomain Code=10 "permission denied" UserInfo=0x608000660240 NSLocalizedDescription=permission denied

我有下一个权利

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.application-identifier</key>
    <string>T76ZSM474A.app</string>
    <key>com.apple.developer.aps-environment</key>
    <string>development</string>
    <key>com.apple.developer.networking.***.api</key>
    <array>
        <string>allow-***</string>
    </array>
    <key>com.apple.developer.team-identifier</key>
    <string>T76ZSM474A</string>
    <key>com.apple.security.application-groups</key>
    <array>
        <string>T76ZSM474A.</string>
    </array>
    <key>keychain-access-groups</key>
    <array>
        <string>T76ZSM474A.group</string>
    </array>
</dict>
</plist>

下一个xcent

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>com.apple.application-identifier</key>
  <string>T76ZSM474A.***</string>
  <key>com.apple.developer.aps-environment</key>
  <string>development</string>
  <key>com.apple.developer.networking.***.api</key>
  <array>
  <string>allow-***</string>
  </array>
  <key>com.apple.developer.team-identifier</key>
  <string>T76ZSM474A</string>
  <key>com.apple.security.application-groups</key>
  <array>
  <string>T76ZSM474A.</string>
  </array>
  <key>keychain-access-groups</key>
  <array>
  <string>T76ZSM474A.group</string>
  </array>
</dict>
</plist>

embedded.provisionprofile 具有允许 *** 和正确的团队 ID (T76ZSM474A)

构建的应用具有下一个协同设计输出

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.application-identifier</key>
    <string>T76ZSM474A.app</string>
    <key>com.apple.developer.aps-environment</key>
    <string>development</string>
    <key>com.apple.developer.networking.***.api</key>
    <array>
        <string>allow-***</string>
    </array>
    <key>com.apple.developer.team-identifier</key>
    <string>T76ZSM474A</string>
    <key>com.apple.security.application-groups</key>
    <array>
        <string>T76ZSM474A.</string>
    </array>
    <key>keychain-access-groups</key>
    <array>
        <string>T76ZSM474A.group</string>
    </array>
</dict>
</plist>

我尝试反编译 Network.framework,但这并不容易。 我在 OS X 10.11 上检查了这个问题,但没有发现问题,我的应用程序运行正常。 我将构建的应用程序从 OS X 10.11 复制到 OS X 10.10,我得到了以前的错误。 我认为文档有错误,OS X 10.10 不支持 NE***Manager 或 OS X 10.10 上的 NE***Manager 有错误。

我做错了什么?

【问题讨论】:

我建议看看forums.developer.apple.com/thread/22943 - 从你得到的日志来看,这可能是问题所在。另一个建议是尝试以root 的身份运行该应用程序——您可能会摆脱问题,这意味着您可以在某处指定您需要root。第三个建议是检查您链接的 SDK - 10.10 还是 10.11? 是的,我已经尝试过来自您的链接的建议,并尝试以 root 身份运行。 我尝试链接到 sdk 10.10,因为我希望在 OS X 10.10 上运行应用程序。 【参考方案1】:

我与 Apple 支持人员见面很久了。 他们告诉我们——NE***Manager 在 10.10 上并不完全可用。 您应该升级到 OS X El Capitan 或使用 Strongswan Frontend for OS X (https://wiki.strongswan.org/projects/strongswan/wiki/MacOSX)。

【讨论】:

以上是关于NE***Manager.saveToPreferencesWithCompletionHandler 上的错误的主要内容,如果未能解决你的问题,请参考以下文章

您可以将 WCF 数据服务(ne OData、ne Astoria、ne ADO.NET 数据服务)与 NetTcpBinding 一起使用吗?

捕获从“ NE”开始的正则表达式,后跟61到71之间的任何一位或两位数字

Shell脚本中eq,ne,le,ge,lt,gt意义

ensp 镜像放哪里

ensp镜像放哪里

网络扩展 - NE***Manager