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

попытался восстановить приложение, которое только вчера работало. Получил сообщение о том, что срок действия профиля истек, поэтому я удалил его с iPod и iTunes. Когда я выбрал новый профиль (С * в идентификаторе), теперь я получаю сообщение об ошибке:

Code Sign Error: Provisioning Profile (long string) can't be found.

что я упустил? Я просмотрел связанные вопросы и еще не видел этого сценария.

16 ответов


Иногда ваш файл проекта xcode запутывается, особенно если у вас есть старый проект и сначала создал его с более старой версией Xcode/iphone sdk. Что вам нужно сделать, это открыть файл проекта в текстовом редакторе, найти "длинную строку" из вашей ошибки и вручную удалить эту строку. Фактически, вы должны просто пойти вперед и стереть любую строку, которая указывает на любые профили подготовки. Затем снова откройте проект в xcode, перейдите в настройки и выберите новый профиль. Это очищает большую часть времени такие проблемы. Строки, указывающие на профили подготовки, будут выглядеть следующим образом:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

вот более простое решение, которое сработало для меня и которое не требует ручного редактирования файла проекта:

в XCode на панели " группы и файлы "разверните" цели " и дважды щелкните цель вашего приложения. Это вызовет панель Info Для цели. В разделе" сборка "проверьте раздел" подпись кода " для любых старых профилей и замените его правильным.

отметьте, что это отличается от двойного щелчка по значку проекта и изменение профиль оттуда. Довольно удивительно :)

Ори


  1. Project & Targets Properties - > "не кодовый знак" - > OK - > cmd+S (или cmd+B);
  2. Project & Targets Properties - > "ваш профиль предоставления" - > OK

  3. все снова работает!


Я согласен с ответом Брэда, что вы можете исправить эту проблему, отредактировав свою цель / проект вручную, удалив любые строки:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

однако в Xcode 4.2 и более поздних версиях есть гораздо более простой способ получить доступ к этому тексту и выбрать и удалить его. В навигаторе проектов слева выберите проект (самая верхняя строка навигатора проектов). Теперь просто выберите вид > Редактор версий > показать редактор версий. Это отображает ваш проект в виде текста, и вы можете выполнить поиск Подготовка и удаление проблемной строки, прямо там, на панели редактора Xcode.


просто увидел вариацию по этому вопросу: я вошел в проект.файл pbxproj в соответствии с примечаниями Брэда Смита выше, за исключением этого случая, все строки PROVISIONING_PROFILE казались правильными, без появления" плохой " строки профиля, которую XCode не смог найти.

однако исправление было одинаковым: удаление всех строк PROVISIONING_PROFILE в project.pbxproj, хотя они выглядели "хорошо" в теории, а затем снова открыли проект в XCode.


чтобы достичь решения Брэда полностью в терминале, используйте эти команды

  1. cd [Xcode project parent]
  2. vi [Xcode project name].xcodeproj/project.pbxproj
  3. /[offending provisioning profile] [Enter]
  4. dd - удалить всю строку
  5. нажмите n, пока не будет найдено
  6. Ctrl+x для сохранения и закрытия

в моем случае проблема была решена, открыв окно - > организатор, выбрав мое устройство и удалив старый профиль подготовки под панелью "подготовка" справа. Старый был уже отмечен красным символом "x", но iPhone все еще использовал его.

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


просто провел час или около того, делая это, и с помощью совета Брэда и нескольких дополнительных изменений все это сработало.

Я сделал это, используя следующее: 10.7.3, Xcode 4.3.2, iOS 5.1 btw.

1) Щелкните правой кнопкой мыши myapp.xcodeproj и выберите содержимое упаковки

2) Открыть project.pbxproj с текстовым редактором (не рекомендуется textedit, поскольку он может испортить форматирование)

3) прокрутите вниз, пока не найдете /* Begin XCBuildConfiguration section */

4) Обратите внимание, что у вас есть разделы отладки и выпуска

5) в разделе выпуска взгляните на CODE_SIGN_IDENTITY & "CODE_SIGN_IDENTITY[sdk=iphoneos*]" это должно выглядеть примерно так:

CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC";

6) посмотри PROVISIONING_PROFILE и "PROVISIONING_PROFILE[sdk=iphoneos*]" они должны выглядеть так:

PROVISIONING_PROFILE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

это должно соответствовать вашему профилю подготовки в Xcode. Чтобы узнать, соответствуют ли они open Xcode > Window > Organizer > Devices > Provisioning Profiles > щелкните правой кнопкой мыши на профиле > Показать в Finder > имя .mobileprovision-это идентификатор вашего профиля.

7) прокрутите вниз project.pbxproj и найдите второй экземпляр раздела release. Второй экземпляр раздела release должен заканчиваться комментарием /* End XCBuildConfiguration section */

8) убедитесь, что второй раздел соответствует первому разделу, так что CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*] и PROVISIONING_PROFILE все заполнено.


одно предложение я сделаю, так как никто еще не сказал этого: пожалуйста, пожалуйста, сделайте резервную копию всего вашего.xcodeproj файл, прежде чем начать изменять его содержимое. Завинчивание файла проекта и отсутствие резервной копии приведет к очень неприятному опыту.

возможность отказаться от редактирования может быть находкой.


Я только что столкнулся с этой проблемой в моем XCode4. Исправить это, вам нужно поместить все правильные положения как в debug, так и в Release config.

Я пытался отправить (путем архивирования) мое приложение. Поэтому я просто меняю положения отладки на "не подписывать код", а положение о выпуске-на положение appstore моего приложения.

это исправить и позволяет мне архивировать нормально. Надеюсь, это поможет.


выберите строки в codesigning, которые пусты под любым SDK iOS, и выберите правильный сертификат.


решение Брэда Смита работало для меня, но мне также пришлось удалить поле CODE_SIGN_IDENTITY, чтобы заставить его работать.


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

Я сделал откат к рабочей версии моего файла проекта. Поскольку невозможно вернуться с помощью Xcode (где опция "Revert" в системе управления версиями Xcode 4?) - я использовал Tortoise, мою машину Windows и этот учебник (http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html) для отката к более старому файлу проекта.

поскольку учебник не сработал для меня, я просто использовал Tortoise, чтобы сохранить рабочую ревизию моего файла проекта на usb-накопитель, чтобы перенести его на мой mac. После этого Я заменил новый сломанный файл проекта на старый рабочий, очистил, и он работал как шарм!


У меня были проблемы, потому что я обновил свой профиль подготовки AdHoc с некоторыми новыми устройствами для использования на TestFlight. Предполагается, что это происходит потому, что xcode имеет старую ссылку на ваш профиль подготовки в настройках сборки codesigning для проекта или целей. То, как я починил свой, было:

  1. перейдите к настройкам целевой сборки и настройкам сборки проекта, в разделе подпись кода измените все профили подготовки на что-то другое.
  2. Go для устройств / профилей подготовки в организаторе удалите оскорбительные профили, затем нажмите кнопку Обновить в правом нижнем углу.
  3. вернитесь к настройкам сборки цели и проекта и установите профили подготовки в соответствующие (надеюсь) обновленные профили подготовки.

по крайней мере в Xcode 5, это то, что решена проблема для меня:

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

enter image description here


вы можете удалить старую ссылку файла подготовки. Затем после импорта нового профиля подготовки и выбора Xcode builder.