it-roy-ru.com

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

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

Я пытаюсь создать простое приложение Hello World под названием (CalculatorBrain) из курсов Stanford iTunes U. Я могу запустить его в симуляторе, но я бы хотел получить его на своем 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. Если я нажимаю на Профили инициализации и пытаюсь «Добавить устройство на Портал инициализации», я получаю «Устройство с номером уже существует в этой команде». Отлично. Я знаю, что это добавлено наверняка тогда. Пока все хорошие новости.

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

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

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

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

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

Другой...

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

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

12
chris P

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

  1. Найдите AppID для вашего проекта в Xcode.
  2. Убедитесь, что вы установили этот AppID в «Сертификаты, идентификаторы и профили».
  3. Создайте профиль обеспечения разработки для этого AppId, вашего сертификата разработки и одного или нескольких зарегистрированных тестовых устройств.
  4. Загрузите и установите профиль обеспечения в XCode.
  5. Сконфигурируйте свой проект для Code Sign, используя этот профиль и идентификатор подписанного кода.
  6. Сборка на устройство!

Упомянутый вами элемент конфигурации сборки «Code Signing Identity» очень сильно зависит как от настроек вашего проекта, так и от профилей обеспечения, доступных на вашей машине для разработки. Недавно я ответил на вопрос, связанный с тангенциальной связью «Что такое идентификация подписи кода?» это может быть полезно, чтобы узнать, какую информацию использует Code Signing и как вы можете проверить, что у вас есть настроенная машина разработки, чтобы иметь возможность Code Sign вашего проекта.

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

Поиск AppID проекта

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

Xcode AppId Setting

  1. В Project Navigator (CMD + 1), нажмите на название вашего проекта (вероятно, «CalculatorBrain»). Это представит настройки проекта.
  2. Выберите [Имя вашего проекта]> вкладка «Сводка», как показано на скриншоте сверху (MyiOSApplication).
  3. Ваш iOS AppID представлен в поле «Идентификатор пакета». Получите копию этой строки, она понадобится вам в следующий раз.

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

  1. Перейдите к http://developer.Apple.com/ios и получите доступ к инструменту «Сертификаты, идентификаторы и профили».
  2. После входа выберите «Идентификаторы».
  3. Убедитесь, что идентификатор AppID, который вы нашли в предыдущем разделе, присутствует в списке идентификаторов приложений. Если это так, запишите имя идентификатора приложения и перейдите к следующему разделу, в противном случае ...
  4. Нажмите кнопку «Добавить» (плюс) в правом верхнем углу, введите имя для этого идентификатора приложения (может быть любым, только если в нем нет специальных символов).
  5. Прокрутите страницу до конца и вставьте копию своего идентификатора приложения из предыдущего раздела в поле «Идентификатор пакета». в разделе «Явный идентификатор приложения».
  6. Нажмите «Продолжить».

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

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

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

  1. В инструменте «Сертификаты, удостоверения, профили» перейдите к «Предоставление профилей».
  2. Нажмите кнопку «Добавить» (плюс) в правом верхнем углу.
  3. Выберите «Разработка приложений для iOS» на шаге «Выбор типа» и нажмите «Продолжить».
  4. Выберите свой идентификатор приложения из раскрывающегося списка идентификаторов приложений и нажмите «Продолжить».
  5. Установите флажок рядом с вашим сертификатом разработки и нажмите «Продолжить».
  6. Установите флажок рядом с тестовыми устройствами, которые вы хотите авторизовать для установки этого приложения, и нажмите «Продолжить».
  7. Введите имя профиля (снова пропуская специальные символы), затем нажмите «Создать».

Загрузите и установите профиль обеспечения

После создания профиля обеспечения инструмент предоставит вам ссылку для загрузки

  1. Загрузите профиль обеспечения, нажав на ссылку «Загрузить».
  2. Перетащите Provisioning Profile из вашего местоположения загрузки и поместите его на значок Xcode Dock или дважды щелкните, чтобы открыть его.

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

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

  1. В Project Navigator (CMD + 1), нажмите на название вашего проекта (вероятно, «CalculatorBrain»). Это представит настройки проекта.
  2. Выберите [Имя вашего проекта]> вкладка «Настройки сборки».
  3. Выделите пункт «Идентификация подписи кода».

Теоретически вы хотели бы использовать опцию «Автоматический выбор профиля», которая будет пытаться сопоставить ваш AppID с установленным профилем Provisioning Profile, но вы также можете прокрутить список и выбрать конкретное сопоставление Bundle ID/AppId с сертификатом iOS.Кроме того, мой собственный XCode, кажется, не всегда улавливает изменения в недавно установленных профилях обеспечения - неясно, является ли это просто причудой моей собственной установки XCode или есть ошибка в XCode. В любом случае, выход и повторный запуск XCode, кажется, вызывают переиндексацию/обновление профилей.

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

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

Assuming the problem was a missing/incomplete/expired Provisioning Profile, then this should help get you up and running. If not, we'll have to Dig into other potential settings or certificates issues that could be tripping up your Code Signature operation.

39
Bryan Musial

У меня была очень похожая проблема, я пробовал все варианты для тех, кто подписывал код, и реальное решение для меня было так: - «Обновить с портала разработчика» Затем я просто «Установите активную схему» на «iPhone (Petri)» рядом с кнопками «Выполнить» и «Стоп».

6
Petri

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

make sure Targets is selected

1
Asfanur

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

  1. Открыть окно «Устройства» (Cmd + Shif + 2)
  2. Найдите свое устройство и выберите его
  3. В левом нижнем углу нажмите на кнопку «Настройки» 
  4. Нажмите "Предоставление профилей"
  5. Поиск дубликатов. Я нашел 3 элемента профилей с тем же именем
  6. удалены все, кроме последней
1
Nikolay Shubenkov