BSMachError В Xcode 7 Бета


Я получаю следующую ошибку, когда я запускаю свой код в Xcode7 с Swift2, после представления контроллера вида через push segue:

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

другие статьи SO не имели разрешения, кто-нибудь знает об этой проблеме?

8 59

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];
});

не уверен, что это поможет с вашей конкретной проблемой, но я подумал, что это может быть полезно поделиться.

измените ключ локализации native development region в своей информации.plist от en до США

преждевременное отключение контроллера вида может привести к этому.

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

это бросает _BSMachErrors

vs

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

теперь _BSMachError ушел.

Я получил эти ошибки, когда я использовал клавиатуру. Согласно этой заметке в документах Apple, это несколько ожидаемо.

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

Я делаю так.

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

наличие этого утверждения прямо под кнопкой IBAction вызывало проблему.

self.view.endEditing(true)

проблема была исправлена в Swift 3, комментируя приведенную выше строку и обрабатывая конечное редактирование по-другому, или также может быть исправлено добавление приведенной выше строки после всего другого кода в IBAction.

У меня была эта проблема во время отладки, и она исчезла, когда я удалил точку останова в своем ответе на изменение размера представления.