Подтвердить что ты не робот

Проблема с правами на iPhone с XCode 4 для распределения Ad Hoc

Я перечитал всю документацию и публикации в Ad Hoc-дистрибутиве и все еще имею проблему. Если я попробую "беспроводной" дистрибутив (с использованием файла .plist и .ipa, загружаемого с помощью Safari), приложение начнет загружаться, значок будет правильно нарисован, и имя изменится с "Установка..", но когда его около 90% завершено, я получите предупреждение "Невозможно загрузить...".

Если я использую метод iTunes для передачи приложения, я получаю "Приложение" xx "не было установлено на iPhone" xx ", потому что права не верны.

Q1: Я прочитал, что вам больше не нужно отдельно добавлять файл .mobileprovision, потому что XCode (я использую 4.0.1) добавляет его в пакет - это правда?

Q2: когда я загружаю '.mobileprovision в сафари (на iPhone), он просто отображает его как текст. Является ли это симптомом моей проблемы или нерелевантности?

Q3: относится ли эта проблема к Entitlements.plist? Я не могу найти документацию от Apple или любых блогов, которые относятся к тому, что я вижу при редактировании этого файла с помощью XCode 4.0.1. Если я следую инструкциям (New- > New File- > Code Signing- > Entitlements), я получаю файл по умолчанию только с ключом "Может быть отлажен". Я пробовал установить это значение "НЕТ", добавив ключ "Получить задание" (заменив существующий - предположительно, можно отлаживать тот же ключ?), Добавив мой идентификатор приложения и добавив словарь прав на iPhone с двумя вышеуказанными клавишами ( согласно документации Apple).

Q4: какова вероятность самоубийства среди разработчиков iPhone, пытающихся получить права доступа и подписи кода?

Сократить предложения, которые я видел для похожих вопросов: У меня есть права доступа к коду, установленные для моего права доступа для распространения и выпуска. Я попытался перезапустить XCode, перестроить, архивировать и т.д. Я попытался перезапустить iPhone Я вернулся к iPhone

Обновление. В XCode 4.0.1 есть опция меню, когда редактируется Entitlements.plist(Редактор- > Показать Raw Keys и Values), который будет переключать ключ из "Может быть отлажен" до "get-task- позволяют '

4b9b3361

Ответ 1

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

Ответ 2

Файл прав должен быть:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
         <key>get-task-allow</key>
           <false/>
         <key>application-identifier</key>
           <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
         <key>keychain-access-groups</key>
           <array>
             <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
           </array>
</dict>
</plist>

это тоже работает для беспроводной сети.
Почему на самом деле по умолчанию у него нет всего этого, это может ответить только Apple. Я не вижу, как редактировать исходный текст plist в Xcode, отредактированный в TextEdit.

Ответ 3

Я только что написал сообщение в блоге, в котором излагаются все шаги к успешным специальным дистрибутивам в Xcode 4, которые могут быть полезны. http://www.musicalgeometry.com/?p=1237

Ответ 4

Entitlements.plist должен быть добавлен в проект, и внутри него должен быть только get-task-allow.

При отладке устройства, использующего профиль разработчика, его следует проверить

При создании с использованием профиля Ad-Hoc или Distribution его следует отключить

Что касается Q4: если вам нравится, вы можете увеличить его, просто сделав... но я не рекомендую его.

Ответ 5

Если вы щелкните правой кнопкой мыши на файле plist в навигаторе проекта и выберите "Открыть как", затем "Исходный код", вы можете отредактировать его как простой источник.

Ответ 6

Возможно, они сделали более короткую версию Entitlements.plist в xcode4. По умолчанию Entitlements.plist не содержит ключи "идентификатор приложения" и "keychain-access-groups", но если вы измените значение ключа "Может быть отлажено" с помощью "Редактора свойств ASCII", это действительно изменяет значение ключа get-task-allow в фоновом режиме...

Ответ 7

Я попробовал установить параметр прав "on" или "off", повторно загрузить временное временное предложение, которое использовалось до тех пор, пока я помню, и попробовал сотни других комбинаций. Никто не работал у меня, пока... Я пошел на предварительный портал и не воссоздал новую временную.

Что действительно заставило меня не спать до 4:00 утра и тратить время на то, что у меня не было, так это то, как я создал специальный предварительный. На странице предварительного портала Apple iOS, если вы нажмете "Provisioning" на левой боковой панели, вы увидите 4 вкладки: "разработка", "распространение" и две другие. Раньше я использовал свое временное создание на вкладке "Разработка" и добавил UUID всех пользователей тестовых пользователей. Это работало для меня в течение многих лет, пока не появился xCode 4, и я был настолько глуп, чтобы слишком быстро прыгать на борт. Инженеры Apple всегда давали мне неожиданную вечеринку "midnight" каждый раз, когда xCode обновлялся. И они будут ждать достаточно долго, чтобы я забыл этот опыт и выпустил следующий.

Решение, которое сработало для меня, состояло в том, чтобы создать временную часть на вкладке распространения. Когда вы создаете новый предварительный пример здесь, вы можете выбрать "ad hoc" как "Метод распространения". После использования этого предварительного проекта xCode и настройки целевой сборки и отключенного "можно отлаживать" на правах, я тогда мог установить через iTunes или через OTA. Надеюсь, этот совет поможет кому-то спасти несколько седых волос.