Поиск и устранение неисправностей
Так же, как поиск и устранение неисправностей является частью каждого сложного технического процесса, это - необходимая часть разработки, тестирования, представления и выпуска приложения. Потенциальные проблемы, с которыми можно встретиться, организованы здесь в четырех общих областях — сертификатах, настройке, здании, и отладке — с каждой проблемой, сопровождаемой определенным уведомлением. Используйте эту главу в качестве ссылки для нахождения решений проблем, с которыми Вы могли бы встретиться.
Проблемы сертификата
Прежде чем Вы воссоздадите сертификат, ставший недопустимым или неприменимым, посмотрите, имеет ли он один или больше следующих типичных проблем.
Вы избегаете подписывать идентификационные данные или сертификат для подписывания кода
XCode обнаруживает при без вести пропавших идентификационных данных подписания по мере необходимости, в зависимости от работы Вы выполняете. Например, при попытке выполнить приложение на устройстве на iOS, диалоговое окно может казаться спрашивающим, если XCode должен запросить недостающий сертификат разработки. Если это происходит, нажмите Fix Issue или Request в появляющемся диалоговом окне.
Если сертификат уже существует в Задействованном Центре, “Ваша учетная запись уже имеет допустимый сертификат” диалоговое окно, появляется. Как правило, это происходит, когда Вы перемещаетесь от одного Mac до другого. Если возможно, экспортируйте свои сертификаты как файл профиля разработчика на другом Mac, и затем импортируйте их на Вашем новом Mac, как описано в Экспорте и Импорте Сертификатов и Профилей. Если у Вас нет резервного копирования Вашего профиля разработчика, нажмите кнопку «Revoke and Request», когда “Ваша учетная запись уже имеет допустимый сертификат” диалоговое окно, появляется.
Можно также запросить определенные типы сертификатов, как описано в Запросе Идентификационных данных Подписания.
Никакое соответствие идентификационных данных подписания или настройка найденных профилей
Если предупреждающее сообщение и кнопка Fix Issue появляются ниже всплывающего меню Команды в области General или в разделе области Capabilities в редакторе проекта, считайте сообщение и нажмите кнопку Fix Issue. XCode может представить серию диалоговых окон, спрашивающих для получения дополнительной информации. Например, диалоговое окно могло бы попросить, чтобы Вы выбрали команду для своего проекта, запросили Ваш сертификат разработки или зарегистрировали устройство. XCode нужны эти активы для создания команды, настраивающей профиль. Если XCode не решает вопрос, сначала выполните все шаги в Конфигурировании Идентификационных данных и Настроек Команды для проверки конфигурации проекта.
Для приложений для iOS, соединяют устройство, которое Вы хотите использовать для разработки для Вашего Mac и выбрать его из меню панели инструментов Scheme прежде, чем щелчок по Fix Issue. (XCode автоматически регистрирует подключенные устройства, выбранные из этого меню.), Если устройство появляется в неподходящем списке в меню, читайте, Ваше устройство на iOS не Перечислено или Не имеет права в Меню Панели инструментов Схемы.
Читайте Закрытый ключ для Ваших Идентификационных данных Подписания Отсутствует при без вести пропавших закрытого ключа в цепочке для ключей.
Закрытый ключ для Ваших идентификационных данных подписания отсутствует
Если закрытый ключ для Ваших идентификационных данных подписания не находится в Вашей цепочке для ключей, подписывание кода перестало работать.
Если закрытый ключ для Вашего сертификата разработки отсутствует, XCode выводит на экран предупреждающее сообщение и несколько опций устранить проблему ниже всплывающего меню Команды в области General в редакторе проекта. При создании резервного копирования идентификационных данных подписания на этом или другом Mac, как описано в Экспорте Профиля Разработчика, нажмите кнопку Import Developer Profile для восстановления закрытого ключа в цепочке для ключей. Иначе, нажмите кнопку «Revoke and Request» для создания новых идентификационных данных подписания. Удалите идентификационные данные подписания с недостающим закрытым ключом от Вашей цепочки для ключей, как описано в Удалении Идентификационных данных Подписания от Вашей Цепочки для ключей.
При использовании профиля настройки пользовательской разработки, которым Вы управляете сами, это становится недопустимым после отмены сертификата разработки. Считайте Изменяющие Профили Настройки в Задействованном Центре для регенерации его.
Если закрытый ключ для сертификата распределения отсутствует, попытайтесь восстановить его от резервного копирования профиля разработчика, как описано в Импорте Вашего Профиля Разработчика. Если Вы не можете получить свои закрытые ключи от другого Mac, пошлите к Воссозданию Сертификатов и Обновлению Связанные Профили Настройки воссоздать эти типы сертификатов. Можно выполнить эти шаги для одного или более сертификатов.
Закрытый ключ для разработчика сертификат ID отсутствует
Выполните те же шаги в Закрытом ключе для Ваших Идентификационных данных Подписания, Отсутствует для восстановления Разработчика сертификаты ID, кроме контакта Apple в product-security@apple.com
если необходимо отменить Разработчика сертификаты ID. Также можно продолжать разрабатывать и распределять приложения путем запроса дополнительного Разработчика сертификаты ID, как описано в Запросе Дополнительного Разработчика Сертификаты ID.
Ваши сертификаты недопустимы, поскольку Вы пропускаете промежуточный сертификат
Если Ваши сертификаты недопустимы, Вы могли бы отсутствовать, промежуточный сертификат раньше аутентифицировал Ваш сертификат. При проверке сертификата в Доступе Цепочки для ключей, как описано в Проверке Используя Доступ Цепочки для ключей, и вместо зеленого круга с галочкой, красный круг с белым X появляется с состоянием «This certificate was signed by an unknown authority», Вы пропускаете промежуточный сертификат. Если у Вас нет сертификата под названием Apple Глобальным Центром сертификации Отношений Разработчика в Вашей системной цепочке для ключей, считайте Установку Недостающие Промежуточные Центры сертификации, чтобы изучить, как переустановить его. Промежуточный сертификат для Разработчика сертификаты ID вызывают Разработчиком Центром сертификации ID.
Ваши сертификаты доверяют проблемы
Если Вы просматриваете свой сертификат в Доступе Цепочки для ключей, и синий круговой и белый знак «плюс» появляется в подробной области вместо зеленого круга с галочкой, Ваш сертификат доверяет проблемы. Чтобы изучить, как решить эту проблему, читайте, XCode не Доверяет Вашему Сертификату.
Ваш профиль настройки или подписание идентификационных данных не появляются в меню XCode
Иногда, Ваш профиль настройки или подписание идентификационных данных не появляются в Профиле Настройки или всплывающем меню при распределении приложения с помощью окна Devices или при установке установки сборки Идентификационных данных Подписывания кода в редакторе проекта. Когда это происходит, профили настройки обновления в XCode, как описано в Обновлении Профилей Настройки в XCode.
Если Ваш профиль настройки все еще не появляется в меню установки сборки Идентификационных данных Подписывания кода, выбирает Do not Code Sign или выбирает сертификат под Автоматическим Селектором Профиля от всплывающего меню Идентификационных данных Подписывания кода. В следующий раз, когда Вы используете всплывающее меню Идентификационных данных Подписывания кода, Ваш профиль настройки должен появиться в меню.
Двойные идентификационные данные подписания или настройка профилей появляются в предпочтениях учетных записей
Представление детализирует диалоговое окно в предпочтительных дисплеях Учетных записей, подписывая идентификационные данные, которые находятся в Вашей цепочке для ключей, не сертификатах в Задействованном Центре. Вы можете иметь многократные учетные записи и принадлежать различным командам, но у Вас должен быть только один из каждого типа сертификата для каждой команды. Для списка типов сертификата обратитесь к Таблице 13-2. Если двойные идентификационные данные подписания появляются, можно удалить или отменяемые идентификационные данные подписания с истекшим сроком из цепочки для ключей, как описано в Удалении Идентификационных данных Подписания от Цепочки для ключей.
Если двойные профили настройки появляются в подробном диалоговом окне представления в предпочтениях Учетных записей, профилях настройки обновления в XCode, как описано в Обновлении Профилей Настройки в XCode.
Ваши сертификаты истекли
Вы не можете возобновить истекшие сертификаты. Читайте Замена Истекла Сертификаты для того, как удалить сертификаты с истекшим сроком и запросить новые.
Ваш запрос испытал таймаут
Если диалоговое окно кажется утверждающим, что Ваш запрос испытал таймаут, Сертификаты, раздел Identifiers & Profiles Задействованного Центра, вероятно, снижается для обслуживания. Чтобы видеть, есть ли у Вас доступ к Сертификатам, Идентификаторам и Профилям, регистрируются к Задействованному Центру использование того же Apple учетные данные ID, которые Вы ввели в XCode. В Сертификатах, Идентификаторах и Профилях, выбирают Certificates или Provisioning Profiles. Если можно просмотреть активы, Сертификаты, Идентификаторы и Профили не снижаются.
Настройка проблем
Общая настройка выпускает результат использования неправильного профиля настройки с Вашим приложением или использованием недопустимого или профиля настройки с истекшим сроком.
Настройка профилей, установленных на Вашем устройстве, недопустима
Если профиль настройки на Вашем устройстве разработки истек или недопустим, удалите его, как описано в Проверке и Удалении Профилей Настройки на Устройствах.
Настраивающие профили кажутся недопустимыми в задействованном центре
Если команда, настраивающая профиль, кажется недопустимой в Задействованном Центре, профилях настройки обновления в XCode, как описано в Обновлении Профилей Настройки в XCode. Например, если Вы включаете, требуют у уведомлений Приложение ID с помощью Задействованного Центра, используют XCode для регенерации связанной команды, настраивающей профили.
Если профиль настройки, которым Вы управляете, кажется недопустимым в Задействованном Центре, удалите или отредактируйте его, как описано в Удалении Профилей Настройки от Задействованного Центра и Изменения Профилей Настройки в Задействованном Центре. Профиль настройки недопустим, если он содержит отменяемый или сертификат с истекшим сроком. Если его Приложение дающее право изменение ID или его Приложение ID удалены, профиль настройки также недопустим. Разработка или оперативно настраивающий профиль недопустима, если это содержит отключенное устройство.
Никакой такой профиль настройки не был найден
. если “Ваша сборка”, настройки указывают профиль настройки с […], однако, никакой такой профиль настройки была найдена, предупреждающее сообщение появляется ниже всплывающего меню Команды в области General, у Вас могут быть неправильные настройки сборки Идентификационных данных Профиля и Подписывания кода Настройки от использования более ранней версии XCode.
Когда это произойдет, нажмите кнопку Fix Issue ниже предупреждающего сообщения. Если необходимо, нажмите кнопку Fix Issue снова. Установка сборки Профиля Настройки не должна быть Ни одним, и установка сборки Идентификационных данных Подписывания кода должна быть Автоматической и Разработчик iOS для приложений для iOS и Автоматической и Разработчик Mac для приложений Mac.
При использовании профиля настройки пользовательской разработки читайте Используя Пользовательские Профили Настройки для того, как сконфигурировать проект.
Сборка и проблемы подписывания кода
При использовании команды, настраивающей профиль, которым XCode управляет для Вас во время разработки, как описано в Команде, Настраивающей Профили подробно, XCode фиксирует подписывание кода и настраивающие проблемы для Вас, прежде чем Вы попытаетесь создать свое приложение. В этом случае Вы не должны устанавливать настройки сборки Идентификационных данных Подписывания кода сами. Однако, если Вы хотите использовать профиль настройки пользовательской разработки и установить эти настройки сборки, как описано в Использовании Пользовательских Профилей Настройки, можно встретиться с проблемами сборки, описанными в этом разделе. Общие ошибки сборки имеют тенденцию включать неправильные идентификационные данные подписывания кода.
XCode не может найти Ваш профиль настройки
Вы получите следующее сообщение об ошибке после замены профиля настройки с измененной версией, такой как тогда, когда изменяется Приложение профиля настройки ID:
Code Sign error: Provisioning Profile 'xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx' can’t be found |
Для исправления этой ошибки гарантируйте, что корректный профиль настройки и идентификационные данные подписывания кода выбраны для значения установки сборки Идентификационных данных Подписывания кода. Если настройки сборки Идентификационных данных Подписывания кода проекта и цели отличаются, эта ошибка может также произойти.
XCode не доверяет Вашему сертификату
Когда XCode не может проверить подлинность Вашего сертификата разработки или распределения, Вы получаете это сообщение об ошибке:
Code Sign error: CSSMERR_TP_NOT_TRUSTED |
Если доверительная установка не будет Системными значениями по умолчанию Использования, то Вы получите a CSSMERR_TP_TRUSTED
сообщение об ошибке от codesign
утилита командной строки, когда Вы создаете и выполняете свое приложение. Не изменяйте доверительные настройки своих сертификатов от Системных значений по умолчанию Использования по умолчанию. Выполните эти шаги для восстановления разработки, распределения и промежуточных сертификатов.
Доступ цепочки для ключей запуска.
В разделе Category выберите My Certificates.
Дважды щелкните по сертификату.
В окне сертификата выведите на экран раздел Trust путем щелчка по соответствующему треугольнику раскрытия.
Для опции «When using this certificate» выберите Use System Defaults.
Закройте окно сертификата.
Гарантируйте, что информация о сертификате показывает, что сертификат допустим.
Установка сборки идентификационных данных подписывания кода не соответствует сертификатов
Когда Ваш сертификат истечет или будет иначе недопустим, Вы получите следующее сообщение об ошибке:
Code Signing Identity 'iPhone Developer' doesn't match any valid, non-expired, certificate/private key pair in your keychain. |
Для многократных целей, использующих те же идентификационные данные подписывания кода, установите эту установку сборки на уровне проекта, не цель. Однако, если это установлено и на проекте и на цели, целевая установка переопределяет установку проекта. Если установка сборки Идентификационных данных Подписывания кода цели установлена, удалите ее первым выбором ее и затем выбором Edit> Delete. Наконец, установите установку сборки Идентификационных данных Подписывания кода проекта в свой сертификат.
Если Ваш сертификат разработки или команда, настраивающая профиль, не появляются во всплывающем меню Идентификационных данных Подписывания кода, попытайтесь обновить профили настройки, как описано в Обновлении Профилей Настройки в XCode. При использовании управляемого XCode профиля настройки читайте Используя Управляемые XCode Профили Настройки. При использовании пользовательского профиля настройки читайте Используя Пользовательские Профили Настройки.
Ваша цепочка для ключей содержит идентификационные данные подписания дублирующего кода
Вы получаете одно из этих сообщений об ошибках, когда существуют идентификационные данные подписания дублирующего кода в Вашей цепочке для ключей, такие как два идентификационных данных разработки или два идентификационных данных распределения (Ваша цепочка для ключей должна содержать самое большее идентификационные данные подписывания кода каждого типа):
Build error "iPhone Developer: <your_name> (XYZ123ABC): ambiguous (matches "iPhone Developer: <your_name> (XYZ123ABC)" in /Library/Keychains/System.keychain and "iPhone Developer: <your_name> (XYZ123ABC)" in /Users/../Library/Keychains/login.keychain)" |
[BEROR]CodeSign error: Certificate identity 'iPhone Distribution: <your_name>' appears more than once in the keychain. The codesign tool requires there only be one. |
Для исправления этих ошибок попытайтесь удалить идентификационные данные подписания дублирующего кода из цепочки для ключей, как описано в Удалении Идентификационных данных Подписания от Цепочки для ключей.
Приложение ID в Вашем профиле настройки не соответствует идентификатор пакета Вашего приложения
Когда существует конфликт между Приложением ID в профиле настройки, выбранном в установке сборки Идентификационных данных Подписывания кода и идентификатором пакета Вашего приложения, Вы получаете сообщения об ошибках, подобные следующему:
Code Sign error: Provisioning profile 'MyApp Profile' specifies the Application Identifier 'com.mycompany.MyApp.*' which doesn't match the current setting 'com.mycompany.MyApp' |
Для исправления этих ошибок гарантируйте, что идентификатор пакета установлен правильно в проекте XCode, что сертификат и настраивающий профиль, указанный в установке сборки Идентификационных данных Подписывания кода, корректен, и что профиль настройки использует соответствующее приложение ID.
Ваше устройство на iOS не Перечислено или Не имеет права в Меню Панели инструментов Схемы
Если у Вас есть или открытая рабочая область проекта, и Ваше подключенное устройство на iOS не перечислено как меню панели инструментов Scheme, проверьте что:
Предназначенная версия iOS приложения равна или больше, чем версия iOS, установленная на Вашем устройстве.
Посмотрите Установку Целевых устройств (Только iOS) для подробных данных.
Номер версии iOS SDK Ваше использование проекта равен или больше, чем номер версии версии iOS на Вашем устройстве.
Например, если XCode показывает iOS SDK 4.3, но Вашему устройству установили iOS 5.0, необходимо установить на Mac версию XCode, включающую iOS SDK 5.0.
Проблема отладочной информации
Наиболее распространенная потенциальная проблема с отладкой состоит в том, что XCode еще не собрал информацию от Вашего устройства.
Дисплеи XCode Неизвестный iOS Обнаруженное Диалоговое окно, Когда Вы Подключение Устройство
Когда XCode не видел определенной версии iOS прежде и должен загрузить (с устройства) отладочную информацию для той версии от устройства, это сообщение появляется. Для успешной отладки приложений на устройстве оставьте устройство подключенным, пока XCode не закончит загружать отладочную информацию с устройства.
Архивация и представление проблемы
Если Вы выбираете архив в окне Archives, и Проверение и Кнопка отправки отключены, проверяют, что архив содержит единственное приложение верхнего уровня.