Ошибка подписавшего недействительна - PullRequest
15 голосов
/ 07 декабря 2009

Я создал специальную сборку своего приложения и хотел бы, чтобы его установил другой человек. У меня есть их идентификатор устройства (на самом деле два) в профиле обеспечения. Мой сертификат одинаков для специальной подготовки и предоставления магазина приложений. Сертификат действителен в связке ключей. Я выбрал специальный профиль в XCode для этой сборки, которая связана с сертификатом распространения.

Я отправляю пользователю файл инициализации и файл .app. Они попадают в iTunes и синхронизируются, а затем получают эту ошибку на обоих устройствах:

The application "myapp" was not installed on the iPhone "user's iPhone" because the signer is not valid.

Я удалил все профили со своего iPhone, поместил два вышеупомянутых файла в iTunes, синхронизировал и успешно установил приложение. Я не могу воспроизвести это для меня. Мне нужно повторить эту проблему локально, чтобы выяснить проблему. Есть идеи, как это можно сделать?

Ответы [ 10 ]

16 голосов
/ 07 декабря 2009

Вы добавили права? Поставить подпись на целевом уровне, а не на уровне проекта? Выберите профиль Ad Hoc? Делать чистку до сборки? Выберите специальное устройство для сборки?

Лучше всего следовать документации Apple точно , чтобы параметры сборки точно соответствовали настройкам Apple.

6 голосов
/ 17 декабря 2010

Рекомендуется проверить файл imbedded.mobileprovision, который входит в комплект .app-файла, чтобы убедиться, что там указан UID. Просто сделайте следующее:

  1. unzip ProblemApp.ipa
  2. cd Payload / ProblemApp.app
  3. pico imbedded.mobileprovision

Найдите UID вашего устройства в этом файле. Если его там нет, то он, вероятно, не добавлен в файл обеспечения на портале.

4 голосов
/ 03 декабря 2010

Из документов:

Создание приложения для Ad Hoc Распределение похоже на создание приложение для распространения App Store, с исключение из двух дополнительных шагов. Во-первых, вам нужно создать Ad Hoc Профиль обеспечения распределения и добавьте UDID устройств iOS, которые Вы хотите распространить с использованием Предоставление программы для разработчиков iPhone Портал. Во-вторых, вам нужно создать Файл Право подписи кода. За информация о том, как создать Файл с правами на чтение Управляющий Раздел «Права на приложения» Руководство по разработке iOS.


Управление правами на приложения

iOS предоставляет доступ к специальным ресурсы и возможности, такие как может ли ваше приложение быть отлажено - через свойства, называемые прав. Чтобы указать право Информация в вашем приложении, вы добавить файл списка свойств содержащие определения прав (пары ключ / значение) для вашего проекта. Когда вы создаете свое приложение, Xcode копирует файл в сгенерированный комплект приложений.

Для добавления списка свойств файл в ваш проект:

В списке Группы и файлы выберите Группа ресурсов. Выберите «Файл»> «Новый» Файл. Выберите iOS> Подписывание кода> Шаблон прав. Назовите файл Entitlements.plist. (Вы можете использовать любой название; просто убедитесь, что он соответствует значению сборки Правил подписи кода установка, как объяснено позже в этом раздел.) Установите тип файл списка свойств для iPhone Entitlements. С выбранным файлом в текстовом редакторе выберите «Вид»> Тип списка недвижимости> iPhone Право плист.

Добавьте свои права доступа к файл. Для каждого права собственности вам нужно определить:

Нажмите Добавить ребенка или Добавить родного брата кнопки справа от выбранного строка. Кнопка Добавить ребенка имеет три линии, изображающие иерархию, Добавить Кнопка родного брата имеет знак плюс (+) Это. Выберите право собственности из всплывающего меню, которое появляется. Если право, которое нужно добавить не появляется в меню, выберите Вид> Тип списка свойств> По умолчанию для типа файла. Затем введите имя и тип ключа доступа.

Введите значение для свойства. Задавать сборки Правил подписи кода установка для цели на имя недавно добавленные права файл списка свойств.


Однажды ты создали ваш файл с правами и добавил его к вашей подписи кода Настройка сборки прав, откройте Файл с правами и добавьте или отредактируйте ключ get-task-allow и установите его в ложь.

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

Для получения информации о Ad Hoc распределение, пожалуйста, прочитайте Публикация приложений для тестирования раздел в Руководстве по разработке iOS.

3 голосов
/ 18 июля 2010

Я недавно столкнулся с этой проблемой с одним тестером в последней сборке. Оказалось, что мой тестер сбросил свой iPod Touch и в процессе удалил профиль обеспечения.

Просто кое-что рассмотреть.

2 голосов
/ 23 ноября 2010

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

1 голос
/ 05 августа 2011

Я прибыл сюда, потому что у меня была та же проблема, что и у ОП. Действительно оказалось, что у меня не было UDID в файле полномочий, хотя я уверен, что использовал обновление в органайзере XCode. Другое обновление ничего не изменило.

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

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

1 голос
/ 09 января 2011

Вот еще одна забавная штука .... если у вас есть отдельные файлы разрешений для iphone и ipad, убедитесь, что вы установили цель для файла для каждой конкретной сборки ... в противном случае она не будет отображаться в сборке, и вы Я получу эту ошибку

0 голосов
/ 11 апреля 2012

У меня одна и та же проблема два раза (xcode 4.2 ios 5)

1-й раз, когда я забыл добавить armv6 в архитектуре

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

0 голосов
/ 14 августа 2011

У меня была такая же проблема, как и у ОП. Глупая ошибка: я случайно сбросил две последние цифры с устройства, на которое я пытался распространять его ad hoc, когда я зарегистрировал его как устройство.

0 голосов
/ 07 февраля 2011

Это не будет работать для меня с iphone 3G под управлением IOS 3.1.3. Я проверил, что профиль распространения не был на телефоне, просмотрев настройки-> общие (не было никакой опции профиля в списке).

Затем я установил утилиту конфигурации iphone:

http://support.apple.com/kb/DL851

Тогда:

  1. запустить конфигурацию iphone
  2. перетащите файл внедренного.mobileprovision в приложение
  3. щелкните устройство слева
  4. нажмите вкладку «Подготовка профилей»
  5. нажмите на профиль и затем нажмите кнопку "Установить"

Тогда приложение установилось просто отлично.

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