_BSMachError XCode 7 Beta
当我用Swift2在Xcode7中运行我的代码后,通过push segue呈现视图控制器时出现以下错误:
_BSMachError: (os/kern) invalid capability (20) _BSMachError: (os/kern) invalid name (15)
其他的SO文章没有解决,有没有人知道这个问题?
虽然这个问题似乎仍然是一个错误,并且可能会被修正,但这源于iOS 9中已经实现的新的应用程序传输安全性 。
如果您的应用程序从Web服务器提取数据,为了填充将要呈现的View Controller,可以通过validation/授予对您正在访问的特定站点的访问权限来解决这些错误 。
为了解决这个问题,你将添加以下内容到你的应用程序的.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>
有关此解决scheme的更多详细信息,请参阅此处或此处 应用程序传输安全性的Apple文档也值得一读。
我有两个相同的错误消息。 在我的情况下,当用户在打开的UIAlertController
select一个button之后调用[[UIApplication sharedApplication] openURL:url]
时,错误就出现了。 我假设警报试图在我尝试打开URL的同时closures。 所以,我介绍了一点点延迟,错误信息就消失了。
dispatch_after(0.2, dispatch_get_main_queue(), ^{ [[UIApplication sharedApplication] openURL:url]; });
不知道这是否有助于您的特定问题,但我认为这可能有助于分享。
将您的info.plist中的本地化本地开发区域密钥从cn更改为美国
过早closures视图控制器可能会导致这种情况。
[self dismissViewControllerAnimated:YES completion:NULL]; //<do something..>
这将抛出_BSMachErrors
VS
//<do something..> [self dismissViewControllerAnimated:YES completion:NULL];
现在,_BSMachError消失了。
我在使用键盘时遇到了这些错误。 根据苹果Docs的这个说明,这是有点期待的。
我这样做
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { () -> Void in AnswersDataServerEntity.saveSingleDocoment(doc) }
在IBAction Button正下方有这个声明引起了这个问题。
self.view.endEditing(true)
这个问题在Swift 3中得到解决,通过注释掉上面的一行并以不同的方式处理结束编辑,或者也可以在IBAction下的所有其他代码之后添加上面的行。
我在debugging时遇到了这个问题,当我在视图大小变化的响应中删除了一个断点时,它就消失了。