2015-11-23 2 views
8

Когда я создаю расширение общего доступа из Xcode для реального устройства, Xcode произвольно останавливает отладку. Но когда я запускаю симулятор, проблема не возникает.iOS9 Share Extension не может отлаживать Xcode

Environment
Xcode 7.1.1
IOS 9,1

Детали
Когда я построить расширение доли, Xcode показывает "Готовые работы MobileSafari.app на iPhone", но Safari не работает. И, кнопка квадратного стопа произвольно серая. Итак, я запускаю Safari самостоятельно и выбираю расширение и пост. Раздел отладки ничего не показывает. Кроме того, URL-адрес не отправляется сервером Rails.

Это изображение, когда я создаю расширение общего ресурса для реального устройства. enter image description here

Я не знаю, почему реальное устройство не может запустить расширение общего доступа в Xcode.
Если кто-нибудь знает ответ об этой проблеме, сообщите мне.

ответ

0

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

Я (как вы, судя по вашему скриншоту) использовал Cocoapods, а Cocoapods копировал ресурсы из контейнеров в комплект расширения приложения после того, как он был подписан кодом. Если память работает, это каким-то образом мешает подписи кода и, следовательно, предотвращает запуск приложения под отладчиком.

Я считаю, что одним из симптомов этого было то, что журналы появились на консоли Mac (или консоли устройства, которые не помнят, что) говорят что-то о «взрывной работе на устройстве, используя старый метод skool [sic]. "

Вы можете подтвердить, что это так, удалив Cocoapods из вашего проекта или любые контейнеры, которым требуются ресурсы для копирования после компиляции. Я считаю, что решение заключалось в том, чтобы добавить какую-то специальную фазу сборки в проект расширения, чтобы скопировать ресурсы пакета, и отключить все Cocoapods по умолчанию.

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

+0

Спасибо, Бен. По почте я заметил, что я еще не переустановил устройство. – penlight

+0

Итак, я попробовал и проверил, было ли расширение приложения в порядке. В результате на iPhone появилось приложение Extension, и я мог видеть вывод отладчика. Я не удалял библиотеку Cocoapods, но я думаю, что ваш ответ разумный. Поэтому я выбираю ваш ответ, это лучший ответ. – penlight

+0

Проблема переделана.Итак, следующий я удаляю проект формы Cocoapods, но проблема не была удалена. – penlight

6

Как правило, вы можете отлаживать расширение общего доступа, перейдя в Debug -> Прикрепить к процессу или PID и ввести имя вашего расширения общего доступа. Оттуда вы можете открыть расширение общего доступа на своем устройстве или симуляторе, а отладчик Xcode должен правильно подключать и удалять точки останова. Тем не менее, я заметил, что сообщения журнала не отображаются при этом, а также не заполняют значения для переменных в представлении отладчика.

Вот как я получил отладку для правильной работы. Запустите схему расширения общего доступа. Когда он спрашивает, какое приложение запускается, выберите «Фото» (потому что это приложение, в котором будет работать ваше расширение). Затем приложение «Фотографии» запустится на ваше устройство, и вы можете продолжить использовать расширение. Затем отладчик в Xcode должен работать как ожидалось.

+0

Я скоро проверю это. –

Смежные вопросы