Вопрос

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

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

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

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

Это было полезно?

Решение

Вы добавили права?Поместите подпись на уровне цели, а не на уровне проекта?Выбрать специальный профиль?СДЕЛАТЬ очистку перед сборкой?Выберите специальное устройство для сборки?

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

Другие советы

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

  1. разархивируйте IssueApp.ipa
  2. cd Payload/ProblemApp.app
  3. Пико встроенный.mobileprovision

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

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

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


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

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

Как добавить файл списка свойств прав доступа в ваш проект:

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

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

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

Введите значение для свойства.Установите создание прав подписи кода параметр для целевого объекта на имя недавно добавленных прав файла списка свойств.


После того, как вы создадите файл прав доступа и добавите его в подпись кода Для настройки сборки прав доступа откройте файл Прав доступа и добавьте или отредактируйте ключ get-task-allow и установите для него значение false.

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

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

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

Просто есть над чем подумать.

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

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

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

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

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

У меня это не сработало бы на iPhone 3G под управлением iOS 3.1.3.Я проверил, что профиль распространения не был на телефоне, просмотрев настройки -> общие (параметр профиля не был указан).

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

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

Затем:

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

Потом приложение установилось нормально.

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

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

Во-первых, раз я забыл добавить Armv6 в архитектуру.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top