_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文档也值得一读。

我有两个相同的错误消息。 在我的情况下,当用户在打开的UIAlertControllerselect一个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的这个说明,这是有点期待的。

http://cocoadocs.org/docsets/Keyboard/0.3.0/

我这样做

  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时遇到了这个问题,当我在视图大小变化的响应中删除了一个断点时,它就消失了。