web-dev-qa-db-ja.com

_BSMachError XCode 7ベータ

Pushセグエを介してビューコントローラーを表示した後、Swift2を使用してXcode7でコードを実行すると、次のエラーが表示されます。

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

他のSO記事には解決策がありませんでしたが、この問題について誰か知っていますか?

59
mattgabor

この問題はバグとして持続するようであり、おそらく修正されるでしょうが、iOS 9で実装された新しいApp Transport Securityに起因します。

アプリケーションがWebサーバーからデータをプルする場合、表示するView Controllerにデータを入力するために、これらのerrorsプル元の特定のサイトへのアクセスを確認/許可します。

これに対処するには、アプリの.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>
    

このソリューションの詳細については、 here または here を参照してください。Apple App Transport Security も読む価値があります。

21
ChrisHaze

同じ2つのエラーメッセージがありました。私の場合、ユーザーが開いているUIAlertControllerでボタンを選択した後に[[UIApplication sharedApplication] openURL:url]を呼び出したときにエラーが表示されていました。 URLを開こうとしているのと同時にアラートが閉じようとしていると思いました。そのため、少し遅れてエラーメッセージが消えました。

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

これがあなたの特定の問題に役立つかどうかはわかりませんが、共有するのが役立つと思いました。

17
nurider

View Controllerを早期に終了すると、これが発生する可能性があります。

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

これは_BSMachErrorsをスローします

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

これで、_BSMachErrorはなくなりました。

3
ychoi

Info.plistのLocalization native development regionキーをenからUnited Statesに変更します

3
user1079052

私はそのように作ります

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

キーボードを使用していたときにこれらのエラーが発生しました。 Apple Docsのこのノートによると、これはある程度予想されています。

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

2
Mark Lummus

IBAction Buttonのすぐ下にこのステートメントがあると、問題が発生していました。

self.view.endEditing(true)

この問題は、Swift 3で修正されました。上記の行をコメントアウトして別の方法で終了編集を処理するか、IBActionの他のすべてのコードの後に​​上記の行を追加して修正することもできます。

0
Naishta

デバッグ中にこの問題が発生し、ビューサイズの変更への応答でブレークポイントを削除すると消えました。

0
Paul