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

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

Ошибка знака кода: профиль обеспечения (длинная строка) не найден.

Что мне не хватает? Я просмотрел связанные вопросы и не видел этот сценарий уже.

Ответ 1

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

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

Ответ 2

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

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

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

Оп

Ответ 3

  • Project & Targets Properties → "Do not Code Sign" → OK → cmd + S (или cmd + B);
  • Project & Targets Properties → "Профиль вашего профиля" → OK

  • Все работает снова!

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

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

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

Ответ 8

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

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

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

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

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

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

5) В разделе release взгляните на 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. Чтобы узнать, соответствуют ли они открытому Xcode > Окно > Органайзеp > Устройствa > Профили Provisioning Profiles > Щелкните правой кнопкой мыши на профиле > Reveal in Finder > Имя файла .mobileprovision - это ваш профиль.

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

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

Ответ 9

Одно предложение, которое я сделаю, поскольку никто еще не сказал об этом: ПОЖАЛУЙСТА, ПОЖАЛУЙСТА, ПОЖАЛУЙСТА, сделайте резервную копию всего вашего файла .xcodeproj ПЕРЕД тем, как вы начнете изменять его содержимое. Привинчивание файла проекта и отсутствие резервного копирования приведет к очень неприятному опыту.

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

Ответ 10

Я просто столкнулся с этой проблемой в своем XCode4. Исправить это, вам нужно поместить все правильные положения в конфигурацию Debug и Release.

Я пытался отправить (путем архивирования) мое приложение. Поэтому я просто изменяю положения "Отладка" на "Do not Code Sign" и положение Release в моем приложении Appstore.

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

Ответ 11

Выберите строки в кодировке, которые пусты в разделе Any IOS SDK, и выберите правильный сертификат.

Ответ 12

Решение Brad Smith работало для меня, но мне также пришлось удалить поле CODE_SIGN_IDENTITY, чтобы он работал.

Ответ 13

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

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

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

Ответ 14

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

  • Перейдите к настройкам целевой сборки и настройкам сборки проекта. Под подпиской кода измените все профили подготовки на что-то еще.
  • Перейдите к профилям устройств/профилей в организаторе, удалите оскорбительные профили, затем нажмите кнопку обновления в правом нижнем углу.
  • Вернитесь к настройкам сборки целевого объекта и проекта и настройте профили подготовки к соответствующим (надеюсь) вновь обновленным профилям подготовки.

Ответ 15

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

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

enter image description here

Ответ 16

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