BSMachError В Xcode 7 Бета
Я получаю следующую ошибку, когда я запускаю свой код в Xcode7 с Swift2, после представления контроллера вида через push segue:
_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)
другие статьи SO не имели разрешения, кто-нибудь знает об этой проблеме?
8 ответов:
хотя эта проблема, похоже, сохраняется как ошибка и, вероятно, будет исправлена, она связана с новым Безопасность Транспорта Приложения Это было реализовано в iOS 9.
Если ваше приложение извлекает данные с веб-сервера, чтобы заполнить контроллер представления, который вы будете представлять, вы можете решить эти ошибки путем проверки / предоставления доступа к конкретному сайту(сайтам), с которого вы тянете.
для того, чтобы решить эту проблему вы добавите следующее В свое приложение .plist file:
вы можете изменить свой словарь исключений 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>
более подробную информацию об этом решении можно найти здесь или здесь Документация Apple для Безопасность Транспорта Приложения стоит прочитать тоже.
у меня были те же два сообщения об ошибках. В моем случае, ошибки появлялись когда я позвонила
[[UIApplication sharedApplication] openURL:url]
после того, как пользователь выбрал кнопку в открытойUIAlertController
. Я предположил, что предупреждение пытается закрыть в то же время я пытался открыть URL. Итак, я ввел небольшую задержку, и сообщение об ошибке исчезло.dispatch_after(0.2, dispatch_get_main_queue(), ^{ [[UIApplication sharedApplication] openURL:url]; });
не уверен, что это поможет с вашей конкретной проблемой, но я подумал, что это может быть полезно поделиться.
преждевременное отключение контроллера вида может привести к этому.
[self dismissViewControllerAnimated:YES completion:NULL]; //<do something..>
это бросает _BSMachErrors
vs
//<do something..> [self dismissViewControllerAnimated:YES completion:NULL];
теперь _BSMachError ушел.
Я получил эти ошибки, когда я использовал клавиатуру. Согласно этой заметке в документах Apple, это несколько ожидаемо.
Я делаю так.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) { () -> Void in AnswersDataServerEntity.saveSingleDocoment(doc) }
наличие этого утверждения прямо под кнопкой IBAction вызывало проблему.
self.view.endEditing(true)
проблема была исправлена в Swift 3, комментируя приведенную выше строку и обрабатывая конечное редактирование по-другому, или также может быть исправлено добавление приведенной выше строки после всего другого кода в IBAction.