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 一起使用吗?