Технические вопросы и ответы QA1884

Тестирование сборок распределения приложений Mac

Q: Когда я выполняю свое приложение Mac, оно сразу отказывает, и крешлог говорит Тип исключительной ситуации: EXC_CRASH (Недопустимая Подпись Кода). Что продолжается здесь?

A: Крешлог указывает, что Ваше приложение подписывается с Вашими идентификационными данными распределения App Store Mac с Подчиненным Общим названием сертификата начиная с “третьей стороны Приложение Разработчика Mac”. Приложения Mac подписались, этот путь больше не может выполняться непосредственно. Вот фон на этом.

В течение долгого времени больше технологий App Store Mac было добавлено, которые требуют прав, прибывающих из профиля настройки. Это запустилось с уведомлений нажатия и iCloud. Позже, Игровой Центр и Карты были добавлены к списку.

Сборки распределения приложений, использующих те технологии, могут быть представлены Подключению iTunes для анализа, но до тех пор, не позволяются работать и уничтожаются на запуске. Это вызвано тем, что профили настройки распределения не содержат список аппаратных средств UUIDs, ограничивающие приложение определенным набором устройств. Это подобно iOS, где сборкам распределения никогда не позволяли работать на устройстве.

Недавно, com.apple.developer.team-identifier право было добавлено ко всем новым профилям настройки Mac. Это означает, что, продвижение, сборки распределения приложений Mac не могут быть выполнены непосредственно; они для представления Подключению iTunes для анализа приложения только.

Вместо этого разработчики должны принять Архивный Поток операций Сборки в QA1778: То, как воспроизвести ошибки, сообщило против отправок приложения в магазин Mac для тестирования сборок, которые они планируют представить для App Store Mac. На Xcode 6 выбрать Export as a Mac Application. Вы не будете видеть шанса выбрать Ваши идентификационные данные подписания разработки, но XCode экспортирует приложение от архива, поскольку это было подписано во время изготовления. Таким образом, результатом будет то же.

Можно создать пакет установщика, содержащий подписанное разработкой приложение вручную с productbuild инструмент, как это:

$ productbuild --component Sample.app /Applications --sign “3rd Party Mac Developer Installer:" Sample.pkg

Тогда установите пакет, как задокументировано в Тестирование Пакета Установщика Mac:

$ sudo installer -store -pkg Sample.pkg -target /

Этот поток операций означает, что необходимо будет добавить системы тестирования испытателей бета-версии к учетной записи Программы Разработчика Mac, таким образом, они будут в состоянии выполнить приложение.

Другая возможность состоит в том, чтобы использовать Xcode Organizer > Export > Export a Developer ID-signed Application. Разработчик подписанные ID приложения может быть выполнен любым. Однако код, использующий технологии, только доступные приложениям App Store Mac, таким как проверка получения, iCloud и уведомления нажатия, не будет работать, если Ваше приложение будет подписанным ID Разработчиком. Если Вы выбираете Разработчика подход к тестированию ID, Вы, возможно, должны были бы временно отключить те части своего приложения.



История версии документа


ДатаПримечания
26.01.2015

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