Je reçois le message d'erreur suivant lorsque j'exécute mon code dans Xcode7 avec Swift2, après avoir présenté un contrôleur de vue via une séquence Push:
_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)
Les autres articles SO n'avaient pas de résolution. Quelqu'un est-il au courant de ce problème?
Bien que ce problème semble persister en tant que bogue et sera probablement résolu, il provient de la nouvelle sécurité du transport d'application qui a été implémentée dans iOS 9.
Si votre application extrait des données d'un serveur Web, vous pouvez résoudre ces problèmes afin de remplir le contrôleur de vue que vous allez présenter errors en vérifiant/accordant l'accès au (x) site (s) particulier (s) à partir duquel vous vous insérez.
Vous pouvez modifier votre dictionnaire des exceptions ATS en fonction de vos besoins.
<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>
Plus de détails sur cette solution peuvent être trouvés ici ou ici Le Apple Documentation pour App Transport Security vaut également la peine d'être lu.
J'ai eu les deux mêmes messages d'erreur. Dans mon cas, les erreurs apparaissaient lorsque j'ai appelé [[UIApplication sharedApplication] openURL:url]
après que l'utilisateur a sélectionné un bouton dans un fichier UIAlertController
ouvert. J'ai supposé que l'alerte essayait de se fermer en même temps que j'essayais d'ouvrir l'URL. Alors, j'ai introduit un léger retard et le message d'erreur est parti.
dispatch_after(0.2, dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] openURL:url];
});
Je ne sais pas si cela vous aide à résoudre votre problème, mais j’ai pensé qu’il pourrait être utile de le partager.
Cela pourrait entraîner la suppression prématurée du contrôleur de vue.
[self dismissViewControllerAnimated:YES completion:NULL];
//<do something..>
Cela jette _BSMachErrors
contre
//<do something..>
[self dismissViewControllerAnimated:YES completion:NULL];
Maintenant, _BSMachError est parti.
Remplacez la clé Région de développement natif par la localisation dans votre info.plist de en vers États-Unis.
Je fais comme ça
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { () -> Void in
AnswersDataServerEntity.saveSingleDocoment(doc)
}
J'ai eu ces erreurs quand j'utilisais le clavier. Selon cette note dans Apple Docs, cela est quelque peu attendu.
Avoir cette déclaration juste en dessous de IBAction Button était à l'origine du problème.
self.view.endEditing(true)
Le problème a été corrigé dans Swift 3, en commentant la ligne ci-dessus et en gérant la modification finale, ou peut également être résolu en ajoutant la ligne ci-dessus après tout autre code sous IBAction.
J'ai eu ce problème lors du débogage et il a disparu lorsque j'ai supprimé un point d'arrêt dans ma réponse au changement de taille de la vue.