Права не действительны - PullRequest
       84

Права не действительны

17 голосов
/ 13 октября 2009

Недавно я обновил ОС iPhone SDK с версии 2.2.1 до версии 3.0. После этого при создании приложения появляется сообщение об истечении срока действия профиля обеспечения. Поэтому я создал новый профиль обеспечения.

Затем я распространил свое приложение с профилем обеспечения. Но я получаю сообщение об ошибке в iTunes при синхронизации моего приложения на устройстве iPhone. Сообщение об ошибке: «Приложение« iGVA »не было установлено на iPhone, так как права недействительны».

Я проверил код подписи Право содержит правильное право plist файл.

Как это можно решить?

Ответы [ 17 ]

30 голосов
/ 12 ноября 2009

Ответ Майкла выше находится на месте (или ссылка, на которую он указывает). Вот шаги, которые мне пришлось предпринять, чтобы заставить его работать:

  • Наличие специального сертификата, для которого проверяется UDID устройства. Установите этот сертификат, перетащив его на значок XCode.
  • В проекте создайте конфигурацию распространения и задайте параметры сборки для соответствующего устройства | распределение. Прямо сейчас мы строим для Device 3.0 | Распределение.
  • Мой проект не включал файл Entitlements.plist - мне пришлось добавить его, выбрав в меню Файл | Добавить файл | IPhone OS | Права и вызов нового файла Entitlements.plist
  • В новом файле plist есть только одна строка - установите значение этой строки равным unchecked.
  • В конфигурации сборки проекта в строке для Правил подписи кода введите имя файла Entitlements.plist в качестве значения.
  • В Идентификации подписи кода выберите специальную идентификацию сертификата (хотя я обнаружил, что вы также можете использовать свою идентификацию сертификата распространения)
  • СЕЙЧАС СТРОИТ :):
  • Доставьте полученный файл приложения и специальный сертификат лицу, которое предоставило вам свой UDID. Должно работать:).
7 голосов
/ 23 октября 2009

Я тоже немного поняла это и нашла ответ в Специальные приложения и права доступа .

Возможно, вам потребуется убедиться, что путь к вашему Entitlements.plist файлу введен в настройках вашего проекта в разделе «Права подписи кода».

7 голосов
/ 22 октября 2010

Файл Entitlements.plist необходим тестировщикам для установки специальных сборок. Шаблоны iOS по умолчанию не включают один. В XCode 3.2.4 вы создаете такой как:

  1. В меню выберите «Файл> Новый файл…»
  2. В шаблонах iOS есть раздел «Подписание кода». Выберите значок сертификата с именем «Права». Назовите файл "Entitlements.plist"
  3. Выберите Entitlements.plist в вашем исходном дереве.
  4. Выберите «Вид> Тип списка свойств> Список разрешений iPhone»
  5. Добавление нового ключа в список свойств (выберите верхнюю строку, нажмите клавишу возврата)
  6. Элемент, вероятно, будет называться «Может быть отлажен». Если нет, выберите это из доступных вариантов. Это эквивалентно «get-task-allow».

Если у вас его еще нет, создайте специальный профиль сборки:

  1. Выберите вашу цель в дереве исходников.
  2. В меню выберите «Файл> Получить информацию»
  3. У инспектора. выберите вкладку «Сборка».
  4. В разделе «Конфигурация» выберите «Редактировать конфигурации…»
  5. Выберите конфигурацию «Release», нажмите «Duplicate» в нижней части экрана.
  6. Переименование новой конфигурации "Ad-Hoc Distribution"

Теперь вы создали Entitlements.plist, вам нужно добавить его в настройки сборки.

  1. Выберите вашу цель в дереве исходников.
  2. В меню выберите «Файл> Получить информацию»
  3. У инспектора. выберите вкладку «Сборка».
  4. Убедитесь, что селектор конфигурации установлен на «Ad-Hoc Distribution»
  5. В группе «Подписывание кода» измените значение «Права подписи кода» на «Entitlements.plist» - возможно, XCode указал для вас относительный путь. Если это так, измените его.

Примечание. У вас будут ошибки при установке приложения на ваше собственное устройство, если вы соберете и запустите «Права подписи кода», установленные для других конфигураций сборки.

Наконец, проверьте, что Entitlements.plist был добавлен к вашей цели.

  1. Выберите Entitlements.plist в дереве исходного кода.
  2. В меню выберите «Файл> Получить информацию».
  3. Выберите вкладку «Цели».
  4. Убедитесь, что установлен флажок рядом с вашей целью.

Теперь вы сможете распространять свои специальные сборки без этой ошибки.

Большая часть этого была взята из Apple Руководство по управлению приложениями , остальное методом проб и ошибок.

2 голосов
/ 12 августа 2011

Права подписи кода больше не нужны для Ad Hoc сборок в Xcode 4 - см. Подробности в Техническое примечание Apple TN2250

2 голосов
/ 24 июня 2011

Ради записи, так как все эти замечательные ответы не помогли мне, я подумала, что поделюсь своим глюком с правами.

Так что да, я добавил UDID, получил инициализацию, проверил на телефоне, в настройках сборки и т. Д.

Мой глюк (спасибо http://www.musicalgeometry.com/?p=1237) состоял в том, что схема Ad Hoc была установлена ​​как конфигурация Ad Hoc только для настроек запуска .

Для настроек архива он все еще указывал на старую конфигурацию выпуска.

(Эти настройки являются боковыми вкладками в окне схемы редактирования.)

Run app settings

Archive settings

Если я спасу кого-то, мое разочарование - я сделал свое дело.

2 голосов
/ 22 февраля 2010

Я сходил с ума по этому поводу. Наконец, я думаю, я понял. В настройках проекта я правильно настраивал права доступа и подписи кода в правильной конфигурации Adhoc. Однако, хотя там все казалось нормальным, когда я установил флажок «Проект -> Изменить активную цель», моя сущность подписи кода все еще зависала в «iPhone Developer».

После переключения на правильный «iPhone Distribution» и перекомпиляции Xcode попросил меня разрешить подписывать код в первый раз. И все это скомпилировано и передано на мой телефон сейчас!

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

1 голос
/ 06 мая 2011

У меня было это в XCode 4. Я пытался очистить, удалить и воссоздать файл разрешений, но все равно не получил удовольствия. Затем я изменил значение для «Может быть отлажено» с ДА на НЕТ .. и это сработало. Как бы то ни было, теперь все работает нормально, надеюсь, это поможет!

1 голос
/ 12 апреля 2011

Это также случилось со мной, и другие ответы не решили это для меня.

Потратив полдня на сборку, установку, очистку, щелкнув безрезультатно - я наконец стер Entitlements.plist из поля в разделе «Права для подписи кода», сохранил и снова набрал его - вот! Это снова сработало! Я никогда не трогал файл с правами, только настройку.

1 голос
/ 14 октября 2010

Убедитесь, что когда вы 'Build and Archive' строите для 'Device', и ваша конфигурация не является 'Debug'. Похоже, что он создает архив правильно, но при установке .ipa устройства произойдет сбой, если вы настроили профиль отладки при выполнении «Сборки и архивирования».

1 голос
/ 22 апреля 2010

Вам также необходимо убедиться, что у вас есть неистекший профиль обеспечения, что на некоторое время помешало мне создать его (кажется, что специальные профили подготовки истекают через год). Сообщение об ошибке то же самое, но оно не имеет ничего общего с отсутствием действительного файла Entitlements.plist.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...