Pushセグエを介してビューコントローラーを表示した後、Swift2を使用してXcode7でコードを実行すると、次のエラーが表示されます。
_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)
他のSO記事には解決策がありませんでしたが、この問題について誰か知っていますか?
この問題はバグとして持続するようであり、おそらく修正されるでしょうが、iOS 9で実装された新しいApp Transport Securityに起因します。
アプリケーションがWebサーバーからデータをプルする場合、表示するView Controllerにデータを入力するために、これらのerrors)プル元の特定のサイトへのアクセスを確認/許可します。
必要に応じて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 も読む価値があります。
同じ2つのエラーメッセージがありました。私の場合、ユーザーが開いているUIAlertController
でボタンを選択した後に[[UIApplication sharedApplication] openURL:url]
を呼び出したときにエラーが表示されていました。 URLを開こうとしているのと同時にアラートが閉じようとしていると思いました。そのため、少し遅れてエラーメッセージが消えました。
dispatch_after(0.2, dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] openURL:url];
});
これがあなたの特定の問題に役立つかどうかはわかりませんが、共有するのが役立つと思いました。
View Controllerを早期に終了すると、これが発生する可能性があります。
[self dismissViewControllerAnimated:YES completion:NULL];
//<do something..>
これは_BSMachErrorsをスローします
対
//<do something..>
[self dismissViewControllerAnimated:YES completion:NULL];
これで、_BSMachErrorはなくなりました。
Info.plistのLocalization native development regionキーをenからUnited Statesに変更します
私はそのように作ります
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { () -> Void in
AnswersDataServerEntity.saveSingleDocoment(doc)
}
キーボードを使用していたときにこれらのエラーが発生しました。 Apple Docsのこのノートによると、これはある程度予想されています。
IBAction Buttonのすぐ下にこのステートメントがあると、問題が発生していました。
self.view.endEditing(true)
この問題は、Swift 3で修正されました。上記の行をコメントアウトして別の方法で終了編集を処理するか、IBActionの他のすべてのコードの後に上記の行を追加して修正することもできます。
デバッグ中にこの問題が発生し、ビューサイズの変更への応答でブレークポイントを削除すると消えました。