_BSMachError XCode 7 Beta

时间:2015-09-01 22:27:52

标签: xcode xcode7

I am getting the following error when I am running my code in Xcode7 with Swift2, after presenting a view controller through a push segue:

_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)

The other SO articles had no resolution, does anyone know about this issue?

8 个答案:

答案 0 :(得分:21)

虽然这个问题似乎仍然存在,并且可能会被修复,但它源于iOS 9中实现的新的 App Transport Security

如果您的应用程序从Web服务器提取数据,为了填充您将要呈现的View Controller,您可以通过验证/授予访问权限来解决这些 错误 到您要拉的特定网站。

为了解决这个问题,您需要将以下内容添加到App的.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>
    

可以找到此解决方案的更多详细信息herehere App Transport Security的Apple文档也值得一读。

答案 1 :(得分:17)

我有两个错误消息。在我的情况下,当用户在打开的[[UIApplication sharedApplication] openURL:url]中选择了一个按钮后调用UIAlertController时出现错误。我假设警报试图关闭,同时我试图打开URL。所以,我引入了一点延迟,错误消息就消失了。

dispatch_after(0.2, dispatch_get_main_queue(), ^{
    [[UIApplication sharedApplication] openURL:url];
});

不确定这是否会对您的特定问题有所帮助,但我认为分享可能会有所帮助。

答案 2 :(得分:3)

将info.plist中的本地化本机开发区域键从en更改为美国

答案 3 :(得分:3)

过早地解除视图控制器可能会导致此问题。

[self dismissViewControllerAnimated:YES completion:NULL]; 
//<do something..>

抛出_BSMachErrors

VS

//<do something..>
[self dismissViewControllerAnimated:YES completion:NULL]; 

现在,_BSMachError消失了。

答案 4 :(得分:2)

我在使用键盘时遇到了这些错误。根据Apple Docs中的这一说明,这有点预期。

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

答案 5 :(得分:2)

我这样做

 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { () -> Void in
        AnswersDataServerEntity.saveSingleDocoment(doc)
    }

答案 6 :(得分:0)

在IBAction Button下方发表此声明导致了这个问题。

self.view.endEditing(true)

这个问题在Swift 3中已经修复,通过注释掉上面的行并以不同的方式处理结束编辑,或者也可以修复在IBAction下的所有其他代码之后添加上面的行。

答案 7 :(得分:0)

我在调试时遇到了这个问题,当我在对视图大小更改的响应中删除断点时,它就消失了。