Ошибка подписавшего недействительна
Я создал специальную сборку своего приложения и хотел бы, чтобы его установил другой человек. У меня есть их идентификатор устройства (на самом деле два) в профиле обеспечения. Мой сертификат одинаков для специальной подготовки и предоставления магазина приложений. Сертификат действителен в связке ключей. Я выбрал специальный профиль в XCode для этой сборки, которая связана с сертификатом распространения.
Я отправляю пользователю файл инициализации и файл.app. Они попадают в iTunes и синхронизируются, а затем получают эту ошибку на обоих устройствах:
The application "myapp" was not installed on the iPhone "user's iPhone" because the signer is not valid.
Я удалил все профили с моего iPhone, поместил два вышеупомянутых файла в iTunes, синхронизировал и успешно установил приложение. Я не могу воспроизвести это для меня. Мне нужно повторить эту проблему локально, чтобы выяснить проблему. Есть идеи, как это можно сделать?
10 ответов
Вы добавили права? Поставить подпись на целевом уровне, а не на уровне проекта? Выберите профиль Ad Hoc? Делать чистку до сборки? Выберите специальное устройство для сборки?
Лучше всего точно следовать документации Apple, чтобы ваши настройки сборки точно соответствовали настройкам Apple.
Рекомендуется проверить файл imbedded.mobileprovision, который входит в комплект.app-файла, чтобы убедиться, что там указан UID. Просто сделайте следующее:
- распаковать ProblemApp.ipa
- cd Payload / ProblemApp.app
- pico imbedded.mobileprovision
Ищите UID вашего устройства в этом файле. Если его там нет, то он, вероятно, не добавлен в файл инициализации на портале.
Из документов:
Создание приложения для рассылки Ad Hoc аналогично созданию приложения для рассылки App Store, за исключением двух дополнительных шагов. Во-первых, вам нужно создать профиль Ad Hoc Distribution Provisioning и добавить идентификаторы UDID устройств iOS, которые вы хотите распространять на портале инициализации программ для разработчиков iPhone. Во-вторых, вам нужно создать файл Entitlements для подписи кода. Информацию о том, как создать файл "Права", можно найти в разделе "Управление правами приложения" в Руководстве по разработке для iOS.
Управление правами на приложения
iOS предоставляет доступ к специальным ресурсам и возможностям, таким как возможность отладки вашего приложения, через свойства, называемые разрешениями. Чтобы указать информацию о правах в вашем приложении, вы добавляете файл свойств со списком прав, содержащий определения прав (пары ключ / значение) в ваш проект. Когда вы создаете свое приложение, XCode копирует файл в сгенерированный пакет приложений.
Чтобы добавить файл списка свойств для вашего проекта:
В списке Группы и файлы выберите группу Ресурсы. Выберите "Файл"> "Новый файл". Выберите iOS > Подписание кода> Шаблон прав. Назовите файл Entitlements.plist. (Вы можете использовать любое имя; просто убедитесь, что оно соответствует значению параметра сборки Правил подписи кода, как описано далее в этом разделе.) Установите тип файла списка свойств равным Правам iPhone. Выбрав файл в текстовом редакторе, выберите "Вид"> "Тип списка свойств"> "Список разрешений iPhone".
Добавьте ваши права записи в файл. Для каждого права собственности вы должны определить:
Нажмите кнопку "Добавить дочерний элемент" или "Добавить родного брата" справа от выбранной строки. Кнопка "Добавить дочерний элемент" имеет три линии, изображающие иерархию, кнопка "Добавить дочерний элемент" имеет знак плюс (+). Выберите свойство предоставления прав в появившемся всплывающем меню. Если нужное вам право не появляется в меню, выберите "Вид"> "Тип списка свойств"> "По умолчанию для типа файла". Затем введите имя и тип ключа доступа.
Введите значение для свойства. Задайте для параметра назначения права подписи кода для цели имя только что добавленного файла списка свойств прав.
После того как вы создали файл Entitlements и добавили его в настройку сборки Entitlements Code Signing, откройте файл Entitlements, добавьте или отредактируйте ключ get-task-allow и установите для него значение false.
В дополнение к сжатию комплекта.app для распространения вашей сборки Ad Hoc среди тестировщиков и т. Д. Рекомендуется также сжимать профиль обеспечения перед распространением, поскольку некоторые почтовые клиенты и серверы могут повредить профиль обеспечения.
Для получения информации о распределении Ad Hoc, пожалуйста, прочитайте раздел "Публикация приложений для тестирования" в Руководстве по разработке для iOS.
Я столкнулся с этой проблемой недавно с одним тестером на недавней сборке. Оказалось, что мой тестер сбросил свой iPod Touch и в процессе удалил профиль инициализации.
Просто кое-что рассмотреть.
Я получил эту ошибку, сделав что-то более тупое, чем кто-либо еще. Я добавил новые устройства в профиль, но забыл загрузить обновленную версию, добавить ее в Xcode и указать на нее проект. Когда я настроил его правильно, тестировщики смогли нормально установить приложение.
Я приехал сюда, потому что у меня была та же проблема, что и у ОП. Действительно оказалось, что у меня не было UDID в файле полномочий, хотя я уверен, что использовал обновление в органайзере XCode. Еще одно обновление не имеет значения.
В конце я удалил все профили обеспечения и затем сделал обновление. Вещи сейчас работают.
Я понятия не имею, это сбой в моей настройке или ошибка оператора. Но на тот случай, если кто-то еще окажется в такой ситуации: он может заплатить за удаление ваших профилей обеспечения, а затем сделать обновление.
Вот еще один забавный... если у вас есть отдельные файлы разрешений для iphone и ipad, убедитесь, что вы установили цель для файла для каждой конкретной сборки... в противном случае он не будет отображаться в сборке, и вы получите это ошибка
Это не будет работать для меня с iphone 3G под управлением IOS 3.1.3. Я проверил, что профиль распространения не был на телефоне, просмотрев настройки-> общие (не было никакой опции профиля в списке).
Затем я установил утилиту конфигурации iphone:
http://support.apple.com/kb/DL851
Затем:
- запустить конфигурацию iphone
- перетащите файл внедренного.mobileprovision в приложение
- нажмите устройство на левой стороне
- перейдите на вкладку "Подготовка профилей"
- нажмите на профиль, а затем нажмите кнопку "установить"
Тогда приложение установлено просто отлично.
У меня одна и та же проблема два раза (xcode 4.2 ios 5
)
Во-первых, раз я забыл добавить armv6 в архитектуре
2-й раз, когда я создал для многих файлов обеспечения с тем же идентификатором разработчика, что я должен удалить цепочку ключей других в соответствии с использованием идентификатора пакета... и я по ошибке удалил действительный и использовал другой кечайн
У меня была такая же проблема, как и у ОП. Глупая ошибка: я случайно сбросил последние две цифры с устройства, на которое я пытался распространять его ad hoc, когда я зарегистрировал его как устройство.