Помилка '_BSMachError: порт 1607; (os / kern) недійсна можливість (0x14) "Не вдається вставити COPY_SEND" у програму Cordova на iOS 10


77

Все працює відмінно , поки я побудую свою Cordova додаток з Xcode 7.3.0 , але він почав врізатися тільки на IOS 10 пристроїв після побудови того ж додатка з Xcode 8 всякий рази , коли я змінююся орієнтація з Портрета в пейзаж , де , як він все ще працює відмінно на прошивці 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

Нижче наведено трасування стека

попередження: не вдалося завантажити жодну інформацію класу 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

Будь ласка, допоможіть.


Я знайшов першопричину проблеми ... її новий файл svg (розмір> 1 мб), доданий до проекту, що створює проблему в альбомному режимі. Я не впевнений, чи полягає проблема в компоненті веб-перегляду iOS або у файлі svg, оскільки для менших форматів svg він працює нормально.
умеш

Основною причиною (відповідно до вкладеного трасування стека) є те, що ваша програма використовувала занадто багато пам'яті і не звільнила достатньо пам’яті на запит. Це також здається узгодженим з вашим коментарем щодо .svgрозміру файлу. Вам слід застосувати didReceiveMemoryWarningселектор у делегаті програми, щоб звільнити невикористані об’єкти.
Еліст

4
Я отримав цю помилку під час виклику popViewController () всередині обробника для AlertController. Розсилання коду, який викликає popViewController () асинхронно до основного потоку, вирішило це, оскільки контролер попереджень очищений перед викликом pop. Я додаю цей коментар, оскільки інші, хто отримує цю помилку, можуть бути спричинені чимось іншим, ніж те, що викликає її для вас.
Девід Ректор

Відповіді:


77

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

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

Я видалив ВСІ точки зупинку і з тих пір не бачив повідомлення про помилку.


8
Я знаю, що це звучить дивно, але насправді це зробило фокус. Просто видалив усі точки зупинки та BAM! все працює раптово!
rak appdev

1
Працює і для мене. Зверніть увагу на код, якщо ви отримаєте 0x14, це ваш розв'язок.
Джон Панг

Працює для мене :)
xlsmearlx

Отримувала цю помилку: [Common] _BSMachError: port c203; (os / kern) недійсна можливість (0x14) "Не вдається вставити COPY_SEND". Видалення точок зупинки це виправило.
CMont

1
Це хитромудре головно-тупе рішення, але воно в мене спрацювало! будь ласка, виправте це яблуко!
woody121

56

Я зіткнувся з тією ж проблемою під час бета-фаз iOS10.0, і, схоже, він все ще присутній у Xcode v11.

Насправді є 2 окремі помилки:


1. Перш за все, як зауважив Avaan, ви повинні встановити всі умови конфіденційності у списку info.plist. Я вважаю, що це причина вашої аварії.

Починаючи з iOS10.0, обов’язково чітко повідомляти користувачеві, які функції телефону ви будете використовувати, і з яких причин.

Інформація про проект


2. Щодо помилки:

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

Я вирішив помилку цим невеликим обхідним шляхом:

  1. Зайдіть в Налаштування проекту / Загальні -> Інформація про розгортання, перевірте всі орієнтації.

Загальні налаштування

  1. Збірка та запуск, інтерфейс повинен обертатися відповідно до орієнтації пристрою.
  2. Скасуйте те, що ви щойно зробили (зніміть прапорці, які вам не потрібні). Створіть і запустіть знову, помилки більше не повинні з'являтися.

Сподіваюся, це допомогло


6
нічого собі ... я не очікував, що це спрацює, але це так. +1
РЕДАКТУВАТИ

+1 Чудово, другий крок виправив мою помилку. Спочатку перевірялася вся орієнтація, потім я зберігав лише портрет, а після цього будував і запускав, а потім перевіряв все ще раз. Я використовую WKWebView
anoop4real

1
У мене не вийшло :(. Все ще трапляється збій. Xcode 11.1. Запуск на апаратному забезпеченні iOS 11.4.1. Проблема виникає під час запуску програми, і я обертаюся до її завершення. Це не відбувається під час запуску / налагодження лише під Xcode Я думаю, це пов’язано з “Неможливо вставити COPY_SEND”, тому що коли я працюю під Xcode, я бачу це повідомлення.
Кріс Принс

Я на Xcode 9.4.1. Я спробував усе це, і все ще отримую цю дивну помилку. Я не отримую аварійного завершення роботи, я просто можу розміщувати будь-які медіа-елементи на своєму чаті. Будь-які інші пропозиції?
Luke Irvin

це смішно і безглуздо для яблука.
vishal dharankar

6

Я отримав саме цю помилку під час скидання основних даних, але жодне з наведених вище рішень не працювало або не мало значення у моєму випадку. Виявилося, що це результат коду, що відбувається всередині дії UIAlert, який потрібно було всунути в основний потік. Тут знайдено рішення - Помилка _BSMachError: (os / kern) недійсна можливість (20) після отримання віддаленого сповіщення про додавання записів CloudKit - та оновлене нижче для Swift 4:

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

5

Для мене причиною було [myTextField becomeFirstResponder]; розміщується після закінчення початкового потоку viewWillAppear.


1

У мене була подібна проблема (перевірте моє запитання щодо SO ) і з’ясував, що мій інтерфейс створив ще один екземпляр, представляючи обидва одночасно.

Якщо ви ще не знайшли рішення своєї проблеми, я раджу вам скористатися інструментом ієрархії вигляду налагодження ... можливо, у вас така сама проблема, як і у мене.

Удачі!


1

Я отримав це при додаванні ключа Info.plist без відповідного рядка. У моєму випадку я додав NSLocationAlwaysAndWhenInUseUsageDescription без опису. Доступ до діалогового вікна дозволу спричиняє цю помилку. Додавання значення рядка вирішило проблему. iOs11.


1
Виявляється, це була проблема для мене. Дивно, так? Дякую!
Білл Норман,

1

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

Конкретною помилкою UIColor було UIColorBreakForOutOfRangeColorComponents.


Працював у мене. Дякую.
Gallymon

1

Виявляється - програма вийде з ладу, якщо ви зателефонуєте EventKit, ContactsKit, мікрофону, камері тощо, для яких потрібні дозволи без клавіш Info.plist, таких як
Конфіденційність - Розташування під час використання Опис використання
Конфіденційність - Опис використання медіатеки

Цю відповідь я отримав з https://forums.developer.apple.com/thread/48959 нитки

також перевірте, чи не забули ви відключити зомбі.


Привіт NSSam, я спробував усі варіанти, але не вирішив проблему. Збій відбувається лише на реальних пристроях, на тренажерах він працює нормально, але виплюває величезний набір попереджень.
умеш

спробуйте додати NSPhotoLibraryUsageDescription.
Аваан

1

У мене раптом сталася ця помилка з використанням симулятора iPhone 11 pro, коли він працював деінде в інших місцях (інші тренажери та фактичні пристрої).

Рішенням для мене було скинути симулятор, вибравши Обладнання> Видалити весь вміст і налаштування ...

Сподіваюся, це може допомогти деяким іншим у тому ж випадку.


1

Xcode 11.5 представив нову недійсну можливість: [textField resignFirstResponder]із незрозумілим доповненням"Unable to insert COPY_SEND"

На iPad з iOS 9.3.6:

2020-05-23 20:35:01.576 _BSMachError: (os/kern) invalid capability (20)
2020-05-23 20:35:01.580 _BSMachError: (os/kern) invalid name (15)

На iPad з iPadOS 13.5:

2020-05-23 20:38:49 [Common] _BSMachError: port 12f0f; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"

На iPhone з iOS 13.5:

2020-05-23 20:43:34 [Common] _BSMachError: port d503; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"

[textField resignFirstResponder]більше не можна використовувати. Див. Як звільнити першого відповідача з текстового поля, коли користувач торкається в іншому місці? для альтернатив.


У мене така сама проблема, коли я хочу зателефонувати за textField.becomeFirstResponderдопомогою Xcode 11.5. Це помилка чи нам справді потрібно вибрати альтернативу?
SDW

1
Вам доведеться скористатися альтернативою. Дивіться посилання, яке я розмістив в останньому рядку моєї відповіді.
Ян Ерхардт,

0

Для мене були переклади в моєму списку. Переконайтесь, що якщо ваш plist локалізований, перекладено відповідні тексти конфіденційності.

У мене пішли години, поки не знайшов ... Я весь час отримував проблему з макетом SFSafariView.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.