Для подписи Xcode 5 идентификаторы недоступны


128

При попытке проверить мое приложение в Xcode 5 возникает ошибка «Идентификаторы недоступны для подписи». Я перепробовал все: заново создать сертификаты и профили обеспечения, все методы, которые были описаны на этом сайте и в других ресурсах; Я запутался, потому что, когда я пытаюсь распространить свое приложение как Ad-hoc, оно успешно создает и устанавливает на тестовое устройство файл IPA. Но когда я пытаюсь проверить свое приложение или отправить его в AppStore, у меня все время возникает ошибка. Может быть, кто-нибудь поможет мне с этим вопросом.


Такая же точная ситуация и здесь. Возможность создавать / распространять специальные приложения, но не магазин приложений. Пожалуйста, ответьте, если найдете решение.
VaporwareWolf

Ответы:


211

Все, что вам нужно сделать, это:

  1. перейдите в раздел "Сертификаты, идентификаторы и профили" в Центре разработчиков.

  2. создать новый профиль обеспечения в «Профили обеспечения» / «Распространение»

  3. скачать профиль и открыть его

  4. перезапустить Xcode


1
Спасибо, Мавис, не знаю, почему твой ответ не получил больше голосов, это сработало для меня после обширной паники, разочарования и поиска в Google :) Открытие файла было ключевым моментом, и я никогда не знал ... Еще раз спасибо.
thepauljones

38
Нет необходимости в шагах 3 и 4. Они заменяются на: -> Перейти к Xcode> Настройки> Учетные записи> Используемый Apple ID> Просмотреть подробности. Нажмите кнопку обновления, чтобы загрузить профиль обеспечения. После его загрузки нажмите Готово. Теперь вы можете проверить и отправить его!
CainaSouza 01

8
Убедитесь, что вы используете один и тот же идентификатор приложения при создании профиля обеспечения и профиля в XCode, иначе это не сработает ..;)
Кристобаль Вьедма

5
Даже на xcode 5.1.1 мне все равно пришлось перезапустить xcode, чтобы это заработало. Немного хромает.
raeldor

2
Я потратил час, потому что официальные документы никогда не упоминали шаг 4.
RJStanford

21

Убедитесь, что вы используете профили обеспечения распространения, а не разработки. И настройка знака кода в Xcode совместима с профилями обеспечения распространения.

введите описание изображения здесь


1
+1000 за единственный ответ, который решил мою проблему. Я не думал, что могу ненавидеть Apple больше, чем до того, как прошел через этот нелепый процесс. Я ошибался.
AndroidDev

Это тоже решило мою проблему. Срок действия моего сертификата истек, поэтому я, естественно, выбрал сертификат разработчика, думая, что он предназначен для распространения. Сертификаты разработчика подходят только для тестирования на вашем устройстве. Перейдите в «Сертификаты, идентификаторы и профили» и проверьте, действительны ли ваши сертификаты распространения. У меня истек срок действия более 10, так как я распространяю много приложений.
Brainware 01

Небольшая вариация этого: профиль может быть для распространения, но для специального / корпоративного распространения, и это невозможно определить при просмотре или редактировании сертификата. Создание нового профиля подготовки показало, что эта опция, а затем сработала, как ожидалось (я назвал профиль соответствующим образом, чтобы избежать путаницы в будущем).
Federico

Вы не упомянули о создании App Storeпрофиля распространения и НЕ Ad-Hoc. Я создал App storeпрофиль раздачи, и все заработало.
Алекс

17

Процесс проверки не работает с профилями Ad-hoc. Необходимо создать профиль обеспечения распространения. Это не указано в инструкции по бета-тестированию. Я мучился весь день, пока не понял.


+1000 Вместо того, чтобы сообщить вам об этом, XCode без извинений выдает сбой, когда вы пытаетесь подтвердить с помощью специального профиля.
Pier-Luc Gendreau

Ты уверен? Я создал профиль распространения, но для случая, и все равно получаю его. Что вы подразумеваете под профилем распространения?
Dejell

@Dejel точно - существует два вида "профиля распространения". Я с удовольствием повторял со своими тестировщиками профиль, который я назвал «Профиль распределения». Создал еще один «Профиль распространения в магазине приложений» и выбрал «магазин приложений» в одном из вариантов, и все в порядке. Вот такая номенклатурная коллизия! Внезапное использование «Идентичности» вместо профиля или подписи ... эээ.
Дэвид ван Бринк

+2 если бы мог. Спасибо!
Seb OH

12

Используйте загрузчик приложений (Xcode -> Открыть инструмент разработчика -> Загрузчик приложений).

Также - этот ответ / вопрос также может быть вам полезен: https://stackoverflow.com/a/18914073/730172


Как я могу там проверить версию?
Dejell

11

Перезапуск Xcode решил проблему для меня! Перезагрузка и / или чистка решают 99% всех проблем ...


1
Спасибо большое, мне хватило перезапуска x-code. Но сообщение об ошибке, которое вы даете, не дает вам подсказки, чтобы попробовать это вообще ...
Лассе

5

Комментарий @CainaSouza выше сработал для меня. Мне даже не пришлось создавать какие-либо новые профили обеспечения.

Мне просто нужно было перейти в Xcode> Настройки> Учетные записи> (Apple ID)> Просмотреть подробности и нажать кнопку обновления. Через минуту или две это было сделано, и мои профили обеспечения были загружены. Мне даже не пришлось выбирать его в параметрах моего проекта, он уже выбрал мой последний созданный.


1
Я пробовал несколько комбинаций из множества предложенных здесь вещей, но пока ничего не работало. Освеженный. Убил каталог данных, производных от XCode (/ Users / YourLoginName / Library / Developer / DerivedData), и перезапустил XCode
примерно

5

Очистите папку сборки продукта (с помощью кнопки Alt) Перезапустите Xcode

Это решило мою ту же проблему


2

У меня была аналогичная проблема. Выяснилось, что идентификатор пакета не соответствует идентификатору приложения, который был в itunes connect - он был написан иначе. Исправлена ​​проблема, когда идентификаторы совпадали.


2

Да, идентификатор приложения и идентификатор пакета должны совпадать. Помните, что это ЧУВСТВИТЕЛЬНО. Это было проблемой для меня.


2

Я обновился до Maverick и Xcode 5, и у меня возникла та же проблема, хотя в профилях у меня все было в порядке. Я создал новый профиль распространения (идентичный старому), добавил его, обновив профили, и проблема была решена без перестройки.


1

Apple решила «волшебным образом удалить» мой профиль обеспечения распространения со своего сайта после обновления до более новой версии Xcode, что тоже дало мне эту проблему.

Решение очевидно только после того, как я обнаружил этот факт!

-Создайте новый профиль обеспечения распространения.

-Загрузите и установите его / Обновите настройки Xcode под данными учетной записи


1

Я исправил эту проблему, удалив старые профили разработки / распространения и создав новый с новыми именами.


1

У меня было несоответствие между идентификатором пакета в Xcode и идентификатором приложения на Developer.Apple.Com (сертификаты, идентификаторы и профили). Этот пост на StackOverflow мне очень помог. Для получения дополнительной информации ознакомьтесь с этим сообщением в блоге . Официальную документацию по команде touch можно найти здесь . Я вышел из Xcode перед тем, как сделать следующее. После завершения подробностей ниже и повторного открытия Xcode моя проблема была решена.

Используйте текстовый редактор, чтобы обновить идентификатор пакета, чтобы он соответствовал идентификатору приложения, файл Info.plist находится:

Имя проекта> Имя проекта> Имя проекта> Имя проекта-Info.plist

Вы ищете следующие строки:

<key>CFBundleIdentifier</key>
<string>MyCompany.${PRODUCT_NAME:rfc1034identifier}</string>

Обновите значение, чтобы оно соответствовало вашему идентификатору приложения, например:

<string>com.MyCompany</string>

Используйте терминал для выполнения сенсорной команды, убедитесь, что вы находитесь в указанном выше каталоге:

touch ProjectName-Info.plist

1

Если вы используете Xcode 5.1 или более поздней версии (каковой вы будете сейчас), это помогло мне: подпись кода нарушена на Xcode 5.1 + iOS 7.1

Ключ состоит в том, чтобы удалить старый профиль обеспечения на вашем Mac и создать новый (с другим именем?) С веб-сайта Apple и загрузить его. Похоже, Xcode 5.1 повреждает существующий профиль обеспечения и не помогает, даже если вы повторно загрузите его снова.


stackoverflow.com/questions/18923095/… Для удаления профилей.
SubstanceMX

1

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

HTH кто-то.


1

Из всех проблем разработки, с которыми я столкнулся за 20 с лишним лет работы в качестве разработчика программного обеспечения, ни одна из них не потратила так много времени, как мусор профиля подписи кода / обеспечения в Xcode.

На этой неделе я потратил 8+ часов, пытаясь создать специальную версию нашего приложения для iPhone. Раньше это просто работало, я мог архивировать, прикреплять кнопку загрузки на нашей внутренней веб-странице, и пользователи могли просто установить наше приложение с этой страницы.

Но на этой неделе я столкнулся с той же проблемой «Идентификационные данные недоступны», описанной здесь.

В конечном итоге вот что решило проблему для меня:

Когда я зашел на безнадежный сайт разработчиков Apple, он показал, что у нашей компании есть 2 сертификата iOS Distribution. Они были действительны, их срок годности истекает через несколько месяцев, а в приложении Keychain Access сертификаты были установлены и действительны ... здесь нет проблем.

Но что решило мою проблему, так это удаление этих двух сертификатов, воссоздание нового, а затем воссоздание моего «внутреннего» профиля обеспечения (поскольку исходный теперь показывался как недействительный, так как он использовал старый сертификат «распространения iOS»).

Я также зашел в приложение «Связка ключей» на своем MacBook и удалил все связки ключей «Распространение iOS».

Затем я загрузил новые сертификаты и профили обеспечения, теперь, наконец, Xcode сообщит, что есть идентификатор, с которым я могу подписывать код.

Команде разработчиков Xcode:

Пожалуйста. Исправьте это.

Если такой разработчик, как я, упирается в стену, не может получить действующий профиль Provisioning Profile, что приведет к скачиванию приложения, которое будет давать сбой каждый раз при появлении сообщения «Приложение не может быть загружено в это время». ДОН 'T разрешить использование функции архивирования.

Вместо этого СКАЖИТЕ пользователю, в чем проблема. ПОМОГИТЕ им решить эту проблему, вместо того, чтобы продвигаться вперед, и с радостью позволяя им создавать архивы, которые никогда не будут использоваться.

И если специальная установка недействительна, поместите что-нибудь в журнал, чтобы объяснить, что пошло не так, и сделайте это доступным из Xcode. В настоящее время ваше сообщение «Приложение не может быть загружено в настоящее время » бесполезно и вводит в заблуждение.

И последнее (если это поможет):

В прошлом месяце наша компания случайно истекла срок действия лицензии Developer Enterprise Program . Затем мы продлили, все вроде бы снова было хорошо, но, может быть, за кулисами это испортило наш сертификат «Распространение iOS»? А может, и нет. С точки зрения сайта Apple все было нормально.


0

Моя проблема заключалась в том, что в моем идентификаторе пакета не было none.myApp, тогда как в AppID у меня было com.myApp.

Это сводило меня с ума на несколько часов.


0

Сегодня я столкнулся с этой проблемой, и, похоже, это связано с лицом, которое в профиле начиналось с номера. Я удалил профиль и воссоздал его точно так же (после множества других шагов по устранению неполадок, найденных на SO), КРОМЕ на этот раз я начал со слова вместо числа. Стечение обстоятельств? Не уверен, но стоит попробовать.


0

Было это вчера и не мог понять, что бы я ни делал! Чтобы решить проблему, я зашел и в проект, и в цель в Xcode и в разделе подписи кода выбрал

  • Идентификация подписи кода: не подписывать код
  • Профиль обеспечения: Нет

Сборка, затем Продукт> Архив, и теперь Организатор выбрал правильные идентификаторы подписи кода и профили, чтобы позволить ему перейти к этапу проверки. Woohoo!


0

Со мной такое случилось после обновления Xcode.

Я исправил следующее

  • измените вход на "без знака"

  • перезапустить Xcode

  • установите его на правильный знак

  • повторно заархивируйте сборку

Я надеюсь, что это помогает


0

Документация Apple

«Если Xcode не находит подписывающие удостоверения, появляется диалоговое окно с сообщением« Нет удостоверений, доступных для подписи ». Перед продолжением убедитесь, что у вас есть сертификат распространения и специальный профиль подготовки.

Если ваш специальный профиль подготовки не отображается во всплывающем меню профиля подготовки при создании пакета iOS App Store, обновите профили в Xcode, как описано в разделе «Обновление профилей обеспечения в Xcode».


0

В моем случае специальная подготовка, которую я хотел установить, не могла быть выбрана в подписи кода в настройках сборки . Хотя я создал и загрузил специальную подготовку из магазина разработчиков. Упомянутые здесь ответы не сработали для меня. Кнопка « Исправить проблему» на вкладке « Общие » устранила проблему, загрузив сам по себе необходимый файл специальной подготовки.


0

Создание нового сертификата, Профиль в центре разработки Apple у меня не получилось! Я попытался отредактировать профиль / сертификаты и загрузить снова и дважды щелкнуть, чтобы установить в KeyChain, но все равно не сработало. Я перезапустил XCode (версия 7 и Mac на El Capitan), перезапустил Mac, но все еще не работал!

Для меня сработало следующее: XCode -> Настройки -> Учетные записи - Затем я удалил Apple ID. Выключите мой Mac и перезапустите его. Запустил свой XCode, добавил Apple ID, пошел, чтобы просмотреть детали в Apple ID, и снова загрузил предварительный профиль, и только тогда он начал работать!


-3

Перезагрузка решила мою проблему. У меня новый Mac, и я попытался загрузить профили, которые все равно следовало перенести. перезапуск решил это.


Ваш ответ не содержит никакой информации, которой нет в одном из многих других ответов на этот вопрос.
Ксавер Капеллер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.