Ошибка разработки кода: профиль подготовки не может быть найден после удаления просроченного профиля
пытался перестроить приложение, которое только вчера работало. Получил сообщение о том, что срок действия профиля истек, поэтому я удалил его с 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 на панели" группы и файлы "разверните" цели " и дважды щелкните по цели вашего приложения. Это приведет к появлению информационной панели для цели. В разделе" сборка "проверьте раздел" подпись кода " для любых старых профилей и замените его правильным.
обратите внимание, что это отличается от двойного щелчка по значку вашего проекта и изменения профиль оттуда. Довольно удивительно :)
Ори
- свойства Project&Targets - > "не кодировать знак" - > OK - > cmd+S(или cmd+B);
свойства проекта и целей - > "ваш профиль предоставления" - > OK
все снова работает!
Я согласен с ответом Брэда, что вы можете исправить эту проблему, отредактировав свою цель / проект вручную, удалив любые строки следующим образом:
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.
для достижения решения Брэда полностью в терминале, используйте эти команды
cd [Xcode project parent]
vi [Xcode project name].xcodeproj/project.pbxproj
/[offending provisioning profile] [Enter]
dd
- удалить всю строку- нажимайте n, пока не будет найдено больше
- 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 должен заканчиваться комментарием/* End XCBuildConfiguration section */
8) убедитесь, что второй раздел соответствует первому разделу, так что
CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*]
иPROVISIONING_PROFILE
все заполнено.
одно предложение я сделаю, так как никто еще не сказал этого: пожалуйста, пожалуйста, сделайте резервную копию всего вашего .xcodeproj файл перед началом изменения его содержимого. Завинчивание файла проекта и отсутствие резервной копии приведет к очень неприятному опыту.
возможность отступить от редактирования может быть находкой.
Я только что столкнулся с этой проблемой в моем XCode4. Исправить это, вам нужно поместить все правильные положения в конфигурацию отладки и выпуска.
Я пытался представить (путем архивирования) мое приложение. Поэтому я просто меняю положения отладки на "не кодировать знак", а положение выпуска на положение appstore моего приложения.
это исправить и позволяет мне архивировать нормально. Надеюсь, это поможет.
выберите строки в codesigning, которые являются пустыми под любым iOS SDK и выберите правильный сертификат.
решение Брэда Смита работало для меня, но мне также пришлось удалить поле 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 для проекта или целей. То, как я исправил Мой было:
- перейдите как к целевым настройкам сборки, так и к настройкам сборки проекта, в разделе подпись кода измените все профили подготовки на что-то другое.
- Go для устройств/профилей подготовки в организаторе удалите оскорбительные профили, затем нажмите кнопку Обновить в правом нижнем углу.
- вернитесь к настройкам сборки цели и проекта и установите профили подготовки в соответствующие (надеюсь) недавно обновленные профили подготовки.