2013-04-22 3 views
12

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

Я пытаюсь создать приложение 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}», если это имеет значение.

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

Не подписывайте Код

Автоматический Профиль Selector - iPhone Developer - iPhone распространения

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

Другие ...

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

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

+0

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

ответ

39

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

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

Элемент конфигурации сборки кода, который вы упомянули, в значительной степени зависит как от настроек вашего проекта, так и от профилей Provisioning Profiles, доступных на вашей машине разработки. Недавно я ответил на связанный с тангенсом вопрос 'What are code signing identities?', который может быть полезен при просмотре информации о том, какая информация используется в Code Signing, и о том, как вы можете проверить, что у вас есть ваша машина для разработки, чтобы иметь возможность Code Sign your project.

... и теперь, на более конкретный HOWTOs, чтобы помочь работе через Подписание вопрос:

AppID локационного Проект

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

Xcode AppId Setting

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

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

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

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

Создание развития Provisioning Профиль

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

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

Скачать и установить профиль обеспечения

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

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

Настройка подписывания кода идентификации

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

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

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

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

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

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

+0

Большое спасибо за это подробное объяснение. Я последовал за ним шаг за шагом и решил все мои проблемы! –

+0

Я второй, что эмоции. Еще раз спасибо. – Taylor

+1

+1 для отличного объяснения! – Paaske

6

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

+0

Спасибо СООО много - это действительно сработало - потребовалось около 30 секунд, хотя и не показывалось, когда это было сделано. Поскольку я был нетерпелив, в первый раз, когда я попробовал, это не сработало, потом вдруг БАМ! это сработало. – cardmagik

1

Убедитесь, что вместо проектов отмечены целевые объекты.

make sure Targets is selected

1

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

  1. окно Open «Devices» (Cmd + Шиф + 2)
  2. Поиск для вашего устройства и выберите его
  3. В левом нижнем углу нажмите на кнопку «Настройки» кнопка
  4. Пресса "Профили профилей"
  5. Поиск дипломатов. Я нашел 3 пунктов профилей с тем же именем
  6. удалить все, кроме последнего одного
Смежные вопросы