_BSMachError XCode 7 测试版
_BSMachError XCode 7 Beta
当我使用 Swift2 运行 我在 Xcode7 中的代码时,在通过推送 segue 呈现视图控制器后,我收到以下错误:
_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)
其他SO文章没有解决,有谁知道这个问题吗?
虽然这个问题似乎作为一个错误持续存在并且可能会被修复,但它源于 App Transport Security 已在 iOS 9 中实现。
如果您的应用程序从网络服务器中提取数据,以便填充您将要呈现的视图控制器,您可以解决这些错误 通过 verifying/granting 访问您从中提取的特定站点。
为了解决这个问题,您需要将以下内容添加到应用的 .plist 文件中:
您可能需要更改 ATS 异常词典 以满足您的需要
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>testdomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<false/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<false/>
<key>NSExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<false/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSRequiresCertificateTransparency</key>
<false/>
</dict>
</dict>
</dict>
可以找到此解决方案的更多详细信息 or here
App Transport Security 的 Apple 文档也值得一读。
我有两条相同的错误消息。就我而言,当用户在打开的 UIAlertController
中选择一个按钮后,我调用 [[UIApplication sharedApplication] openURL:url]
时出现错误。我假设警报试图在我试图打开 URL 的同时关闭。所以,我稍微延迟了一下,错误消息就消失了。
dispatch_after(0.2, dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] openURL:url];
});
不确定这是否有助于解决您的特定问题,但我认为分享可能会有所帮助。
我在使用键盘时遇到了这些错误。根据 Apple Docs 中的注释,这在某种程度上是意料之中的。
将 info.plist 中的 Localization native development region key 从 en 更改为 United States
我就是这样做的
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { () -> Void in
AnswersDataServerEntity.saveSingleDocoment(doc)
}
过早关闭视图控制器可能会导致这种情况。
[self dismissViewControllerAnimated:YES completion:NULL];
//<do something..>
这会引发 _BSMachErrors
对
//<do something..>
[self dismissViewControllerAnimated:YES completion:NULL];
现在,_BSMachError 消失了。
在 IBAction 按钮下方添加此语句是导致问题的原因。
self.view.endEditing(true)
问题已在 Swift 3 中解决,方法是注释掉上面的行并以不同的方式处理结束编辑,或者也可以在 IBAction 下的所有其他代码之后添加上面的行来解决。
我在调试时遇到了这个问题,当我在响应视图大小更改时删除断点后问题就消失了。
当我使用 Swift2 运行 我在 Xcode7 中的代码时,在通过推送 segue 呈现视图控制器后,我收到以下错误:
_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)
其他SO文章没有解决,有谁知道这个问题吗?
虽然这个问题似乎作为一个错误持续存在并且可能会被修复,但它源于 App Transport Security 已在 iOS 9 中实现。
如果您的应用程序从网络服务器中提取数据,以便填充您将要呈现的视图控制器,您可以解决这些错误 通过 verifying/granting 访问您从中提取的特定站点。
为了解决这个问题,您需要将以下内容添加到应用的 .plist 文件中:
您可能需要更改 ATS 异常词典 以满足您的需要
<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>testdomain.com</key> <dict> <key>NSIncludesSubdomains</key> <false/> <key>NSExceptionAllowsInsecureHTTPLoads</key> <false/> <key>NSExceptionRequiresForwardSecrecy</key> <true/> <key>NSExceptionMinimumTLSVersion</key> <string>TLSv1.2</string> <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key> <false/> <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <true/> <key>NSThirdPartyExceptionMinimumTLSVersion</key> <string>TLSv1.2</string> <key>NSRequiresCertificateTransparency</key> <false/> </dict> </dict> </dict>
可以找到此解决方案的更多详细信息
我有两条相同的错误消息。就我而言,当用户在打开的 UIAlertController
中选择一个按钮后,我调用 [[UIApplication sharedApplication] openURL:url]
时出现错误。我假设警报试图在我试图打开 URL 的同时关闭。所以,我稍微延迟了一下,错误消息就消失了。
dispatch_after(0.2, dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] openURL:url];
});
不确定这是否有助于解决您的特定问题,但我认为分享可能会有所帮助。
我在使用键盘时遇到了这些错误。根据 Apple Docs 中的注释,这在某种程度上是意料之中的。
将 info.plist 中的 Localization native development region key 从 en 更改为 United States
我就是这样做的
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { () -> Void in
AnswersDataServerEntity.saveSingleDocoment(doc)
}
过早关闭视图控制器可能会导致这种情况。
[self dismissViewControllerAnimated:YES completion:NULL];
//<do something..>
这会引发 _BSMachErrors
对
//<do something..>
[self dismissViewControllerAnimated:YES completion:NULL];
现在,_BSMachError 消失了。
在 IBAction 按钮下方添加此语句是导致问题的原因。
self.view.endEditing(true)
问题已在 Swift 3 中解决,方法是注释掉上面的行并以不同的方式处理结束编辑,或者也可以在 IBAction 下的所有其他代码之后添加上面的行来解决。
我在调试时遇到了这个问题,当我在响应视图大小更改时删除断点后问题就消失了。