Ошибка '_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, необходимо явно указать пользователю, какие функции телефона вы будете использовать, и по каким причинам.
2. Что касается ошибки:
BSMachError: порт 1607; (os/kern) недопустимая возможность (0x14) "Невозможно вставить COPY_SEND"
Я разрешил ошибку с этим небольшим обходным решением:
- Перейдите в Настройки проекта/Общие → Информация о развертывании, проверьте все ориентации.
- Создавайте и запускайте, интерфейс должен вращаться в соответствии с ориентацией устройства.
- Отмените то, что вы только что сделали (снимите отметки, которые вам не нужны). Создавайте и запускайте снова, ошибки больше не должны появляться.
Я надеюсь, что это помогло
Ответ 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...
}
}
}))