Ошибка '_BSMachError: порт 1607; (os/kern) недопустимые возможности (0x14) "Невозможно вставить COPY_SEND" в приложении Cordova на iOS 10

Все работает нормально, пока я не создаю приложение для кордоны с Xcode 7.3.0, но он начал сбой только на устройствах iOS 10 после создания того же приложения с Xcode 8 всякий раз, когда я изменяю ориентацию от Portrait to Landscape, где он все еще отлично работает на iOS 9.3.1. В отладчике я получаю следующие журналы:

2016-09-24 18:14:41.212470 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
2016-09-24 18:14:41.613460 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid name (0xf) "Unable to insert COPY_SEND"
2016-09-24 18:14:41.613947 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid name (0xf) "Unable to insert COPY_SEND"
2016-09-24 18:14:41.614469 MyApp[2542:1028606] [Common] _BSMachError: port 1607; (os/kern) invalid name (0xf) "Unable to deallocate send right"
Message from debugger: Terminated due to memory issue

Ниже показана трассировка стека

warning: не удалось загрузить информацию класса Objective-C из dyld-общего кэша. Это значительно снизит качество имеющейся информации о типе.

* thread #1: tid = 0xfc80c, 0x00000001000cff00 MyApp'-[MainViewController didReceiveMemoryWarning](self=0x0000000119e0da60, _cmd="didReceiveMemoryWarning") + 40 at MainViewController.m:59, stop reason = breakpoint 7.1

  * frame #0: 0x00000001000cff00 MyApp'-[MainViewController didReceiveMemoryWarning](self=0x0000000119e0da60, _cmd="didReceiveMemoryWarning") + 40 at MainViewController.m:59
    frame #1: 0x0000000192e29964 UIKit'+[UIViewController _traverseViewControllerHierarchyWithDelayedRelease:] + 432
    frame #2: 0x0000000192d5a0f4 UIKit'-[UIApplication _performMemoryWarning] + 232
    frame #3: 0x0000000192d5a294 UIKit'-[UIApplication _receivedMemoryNotification] + 140
    frame #4: 0x0000000100a7d21c libdispatch.dylib'_dispatch_client_callout + 16
    frame #5: 0x0000000100a893a8 libdispatch.dylib'_dispatch_continuation_pop + 708
    frame #6: 0x0000000100a97fa8 libdispatch.dylib'_dispatch_source_latch_and_call + 204
    frame #7: 0x0000000100a7f304 libdispatch.dylib'_dispatch_source_invoke + 836
    frame #8: 0x0000000100a82060 libdispatch.dylib'_dispatch_main_queue_callback_4CF + 652
    frame #9: 0x000000018cc29f2c CoreFoundation'__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
    frame #10: 0x000000018cc27b18 CoreFoundation'__CFRunLoopRun + 1660
    frame #11: 0x000000018cb56048 CoreFoundation'CFRunLoopRunSpecific + 444
    frame #12: 0x000000018e5d9198 GraphicsServices'GSEventRunModal + 180
    frame #13: 0x0000000192b2f818 UIKit'-[UIApplication _run] + 684
    frame #14: 0x0000000192b2a550 UIKit'UIApplicationMain + 208
    frame #15: 0x00000001000c7ecc MyApp'main(argc=1, argv=0x000000016fd3fab8) + 76 at main.m:32
    frame #16: 0x000000018bb385b8 libdyld.dylib'start + 4

я бегу

  • Xcode 8
  • Кордова 6.3.0 (iOS 4.1.0)
  • iOS 10 iPhone 6

Пожалуйста помоги.

Ответы

Ответ 1

Я получил сообщение "Невозможно вставить COPY_SEND" (0x14) в отладчике, что помешало бы запуску приложения около 10 секунд.

У меня были контрольные точки, установленные в файлах, которые с тех пор были удалены из проекта, но все еще отображаются в навигаторе Breakpoint (имена файлов красными).

Я удалил ВСЕ точки останова и не видел сообщение об ошибке с тех пор.

Ответ 2

Я столкнулся с той же проблемой во время бета-фаз iOS10.0 и, похоже, все еще присутствует в Xcode v8.1.

На самом деле есть две отдельные ошибки:


1. Прежде всего, как прокомментировал Аваан, вы должны установить все использование конфиденциальности в info.plist. Я считаю, что это причина вашего краха.

Начиная с iOS10.0, необходимо явно указать пользователю, какие функции телефона вы будете использовать, и по каким причинам.

Project Info


2. Что касается ошибки:

BSMachError: порт 1607; (os/kern) недопустимая возможность (0x14) "Невозможно вставить COPY_SEND"

Я разрешил ошибку с этим небольшим обходным решением:

  1. Перейдите в Настройки проекта/Общие → Информация о развертывании, проверьте все ориентации.

General settings

  1. Создавайте и запускайте, интерфейс должен вращаться в соответствии с ориентацией устройства.
  2. Отмените то, что вы только что сделали (снимите отметки, которые вам не нужны). Создавайте и запускайте снова, ошибки больше не должны появляться.

Я надеюсь, что это помогло

Ответ 3

Для меня причиной было [myTextField becomeFirstResponder]; после того, как начальный вид завершился.

Ответ 4

Оказывается - приложение выйдет из строя, если вы вызываете EventKit, ContactsKit, Microphone, Camera и т.д. И т.д., Который требует разрешений без ключей Info.plist, таких как
Конфиденциальность - Местоположение при использовании Использование Описание
Конфиденциальность - Использование библиотеки мультимедиа

Я получил этот ответ из https://forums.developer.apple.com/thread/48959 темы

также проверьте, не забыл ли вы отключить зомби.

Ответ 5

У меня была аналогичная проблема (проверьте мой вопрос о SO) и выяснили, что мой пользовательский интерфейс создал еще один экземпляр сам, представляя оба одновременно.

Если вы еще не нашли решение своей проблемы, я советую вам использовать инструмент "Инициализация отладки"... может быть, у вас такая же проблема, как у меня.

Удачи!

Ответ 6

Я получил это при добавлении ключа Info.plist без соответствующей строки. В моем экземпляре я добавил NSLocationAlwaysAndWhenInUseUsageDescription без описания. Доступ к диалоговому окну разрешения приведет к возникновению этой ошибки. Добавление строкового значения разрешило проблему. iOs11.

Ответ 7

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

Взял мне часы, пока не нашел его... Я все время получал макет SFSafariView.

Ответ 8

Я получал эту ошибку, пробовал каждое решение в этой теме, и ничего не работало. У меня была, по-видимому, некорректная ошибка UIColor (цвет за пределами диапазона), которую я исправил, и эта проблема COPY_SEND тоже исчезла.

Специфическая ошибка UIColor была UIColorBreakForOutOfRangeColorComponents.

Ответ 9

Я получил именно эту ошибку при выполнении сброса Core Data, но ни одно из вышеперечисленных решений не сработало или не имело значения в моем случае. Оказалось, что это происходит в результате действия кода внутри действия UIAlert, которое нужно было вставить в основной поток. Решение найдено здесь - Ошибка _BSMachError: (os/kern) недопустимая возможность (20) после получения удаленного уведомления о добавлении записи CloudKit - и обновлена ниже для Swift 4:

alert.addAction(UIAlertAction(title: "Reset Now", style: UIAlertAction.Style.default, handler: { action in
            DispatchQueue.global(qos: .background).async {
                DispatchQueue.main.async {
                    // Core Data reset code goes here...
                }
            }
}))