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

Это было задано раньше, но ответы на предыдущие вопросы не решают мою проблему.

Я пытаюсь создать простое приложение Hello World под названием (CalculatorBrain) из курсов Stanford iTunes U. Я могу запустить его в Simulator отлично, но я бы хотел получить его на своем iPhone 4S.

Я синхронизирую свой iPhone 4S через iTunes на своей Windows-машине. Всегда есть. Поразмыслив, я должен перечислить эту деталь.

В любом случае, вернемся к моему Macbook (Mountain Lion). Я запускаю самый последний XCode 4.6.2 (4H1003), и мой iPhone также самый последний из 6.1.3, я считаю.

Я пошел в портал Provisioning Portal на странице разработчиков Apple. Я добавил 4S. Я назвал его JohnSmith и дал ему UDID телефонов.

В XCode я открыл Организатор, Устройства выделены по умолчанию. Я поместил код доступа в свой iPhone и подключил его к своему Macbook. Устройства обнаруживают мой iPhone. Если я нажму на Provisioning Profiles и попробую "Добавить устройство в портал Provisioning Portal", я получаю "В этой команде уже есть устройство с номером". Отлично. Я знаю, что это добавлено точно. Все хорошие новости до сих пор.

В моем приложении Hello World CalculatorBrain-Info.plist мой идентификатор пакета "com.JohnSmith.CalculatorBrain". Отображаемое имя пакета - "$ {PRODUCT_NAME}", а исполняемый файл - "$ {EXECUTABLE_NAME}", если это имеет значение.

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

Не подписывать код

Автоматический выбор профиля - Разработчик iPhone - Распространение iPhone

Идентичность без профилей Provisioning - iPhone Разработчик: John Smith (R............ K) - iPhone Распространение: Джон Смит (Y............. 5)

Другое...

Я пробовал все это. Я предполагаю, что я должен использовать iPhone Developer: Джон Смит один... но он говорит это личность без Provisioning Profiles.

Что здесь происходит? Что мне нужно сделать, чтобы заставить это работать?

Ответ 1

На основе вашего описания кажется, что отсутствующий элемент - это то, что вам нужно вернуться к инструменту "Сертификаты, идентификаторы и профили" , создать профиль Provisioning Profile для AppID вашего приложения HelloWorld, а затем установить этот профиль на вашей машине разработки. На высоком уровне это состоит из следующих шагов:

  • Найдите AppID для вашего проекта в Xcode.
  • Убедитесь, что вы установили этот AppID в "Сертификаты, идентификаторы и профили" .
  • Создайте профиль Provisioning Development для этого AppId, вашего сертификата разработки и одного или нескольких зарегистрированных тестовых устройств.
  • Загрузите и установите профиль Provisioning Profile в Xcode.
  • Настройте свой проект на Code Sign с помощью этого профиля и идентификатора подписи кода.
  • Создайте устройство!

Элемент конфигурации сборки "Code Signing Identity", о котором вы упоминали, очень сильно зависит как от ваших параметров проекта, так и от профилей Provisioning Profiles, доступных на вашей машине разработки. Недавно я ответил на связанный с тангенсом вопрос "Что такое идентификаторы подписи кода?" , которые могут быть полезны при просмотре информации о том, используя и как вы можете проверить, что у вас есть настройка вашей машины разработки, чтобы иметь возможность подписать код вашего проекта.

... и теперь, к более конкретным HOWTO, чтобы помочь работать с вашим вопросом подписи кода:

Поиск приложения AppID

AppID однозначно определяет приложение в экосистеме iOS и является одной из вещей, которые вы впервые создаете при запуске нового проекта Xcode. Этот AppID - это то, что вам нужно зарегистрировать в инструменте "Сертификаты, идентификаторы и профили" , чтобы начать работу с Provisioning.

Xcode AppId Setting

  • В Навигаторе проектов (CMD + 1) щелкните имя своего проекта (вероятно, "Калькулятор" ). Здесь будут представлены настройки проекта.
  • Выберите [Ваше имя проекта] > вкладка "Сводка", как показано на экране отсечения сверху (MyiOSApplication).
  • Ваш iOS AppID представлен в поле "Bundle Identifier". Убейте копию этой строки, вам понадобится следующая.

Проверить (или установить) AppID

  • Перейдите в http://developer.apple.com/ios и получите доступ к инструменту "Сертификаты, идентификаторы и профили".
  • После входа в систему выберите "Идентификаторы".
  • Убедитесь, что AppID, найденный в предыдущем разделе, присутствует в списке Идентификаторов приложений. Если да, обратите внимание на ИД имени приложения и перейдите к следующему разделу, в противном случае...
  • Нажмите кнопку "Добавить" (Плюс) в верхнем правом углу, укажите имя для этого идентификатора приложения (может быть любым, что вы хотите, только если у него нет специальных символов.)
  • Прокрутите страницу до конца и вставьте копию своего идентификатора приложения из предыдущего раздела в поле "Bundle ID" . в разделе "Явный идентификатор приложения".
  • Нажмите "Продолжить" .

Обратите внимание, что AppID должен быть уникальным в iOS Ecosystem - вы можете получить сообщение об ошибке, если выбранный вами AppID уже используется. Если это так, измените свой "Bundle ID" на что-то уникальное - просто обязательно обновите параметр "Bundle ID" в проекте Xcode, чтобы он соответствовал тому, что вы установили.

Создание профиля разработки

Теперь, когда идентификатор приложения зарегистрирован, теперь вы готовы создать профиль Provisioning Development, связанный с идентификатором вашего приложения, сертификатом разработки и идентификаторами тестовых устройств.

  • В инструменте "Сертификаты, идентификаторы, профили" перейдите к "Профили Provisioning".
  • Нажмите кнопку "Добавить" (Плюс) в правом верхнем углу.
  • Выберите "Разработка приложений iOS" на шаге "Выбрать тип" и нажмите "Продолжить" .
  • Выберите свой идентификатор приложения из раскрывающегося списка идентификаторов приложений и нажмите "Продолжить" .
  • Установите флажок рядом с сертификатом разработки и нажмите "Продолжить" .
  • Установите флажок рядом с тестовыми устройствами, которые вы хотите разрешить для установки этого приложения, и нажмите "Продолжить" .
  • Введите имя профиля (снова опустив специальные символы), затем нажмите "Создать".

Загрузить и установить профиль Provisioning

Как только профиль Provisioning Profile будет сгенерирован, инструмент предоставит вам ссылку для загрузки

  • Загрузите профиль Provisioning Profile, щелкнув ссылку "Загрузить".
  • Извлеките профиль Provisioning из своего места загрузки и опустите его на значок Xcode Dock или дважды щелкните, чтобы открыть его.

Настройка идентификатора подписи кода

Похоже, вы уже знаете, где это находится, но на всякий случай:

  • В Навигаторе проектов (CMD + 1) щелкните имя своего проекта (вероятно, "Калькулятор" ). Здесь будут представлены настройки проекта.
  • Выберите [Ваше имя проекта] > вкладка "Настройки".
  • Перейдите к элементу "Идентификация кода".

В теории вы хотели бы использовать параметр "Автоматический выбор профиля", который будет пытаться сопоставить ваш AppID с установленным профилем Provisioning Profile, но вы также можете прокручивать список и выбирать конкретное сопоставление Bundle ID/AppId для iOS Сертификат.

Кроме того, мой собственный Xcode не всегда улавливает изменения в недавно установленных профилях подготовки. Неясно, является ли это просто причудой моей собственной установки Xcode или если в Xcode есть ошибка. В любом случае, выключение и перезапуск Xcode, похоже, вызывает обновление или обновление профилей.

В любом случае выберите параметр, соответствующий вашему AppId/BundleId и вашему сертификату разработчика.

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

Ответ 2

У меня была очень похожая проблема, каждый из них применял эти подписи кода, и фактическое решение для моего было: - Перезагруженный Xcode - Перейдите в "Window- > Organizer" - Затем "Редактор" и - "Обновление от портала разработчика" Затем я просто "Настроить активную схему" на "iPhone (Petri)" рядом с кнопками "Выполнить" и "Стоп".

Ответ 3

Пожалуйста, убедитесь, что вместо проектов отмечены целевые объекты.

make sure Targets is selected

Ответ 4

enter image description here В моем случае устройство имеет 3 профили обеспечения с тем же именем. Во время разработки я обновлял профиль профиля несколько раз и каждый раз, когда новый обновленный профиль был добавлен на устройство без удаления старого. Таким образом, xcode искал первый профиль обеспечения, который был неправильным в тот момент, и наложил ошибку на мое лицо. Итак, что вы должны делать:

  • Откройте окно "Устройства" (Cmd + Shif + 2)
  • Найдите свое устройство и выберите его
  • В левом нижнем углу нажмите кнопку "Настройки"
  • Нажмите "Профили профилей"
  • Поиск дубликатов. Я нашел 3 элемента профилей с тем же именем
  • удалено все, кроме последнего.