Нужен ли мне файл Entitlements.plist для специальной сборки?

Инструкции, приведенные на странице " Распространение" на портале обеспечения iOS, по-прежнему четко описывают процесс создания и включают файл Entitlements.plist в сборку для специального распространения. На странице "Распространение приложений" в Руководстве по разработке для iOS ничего не говорится о файле Entitlements.plist.

Когда я попытался "собрать и заархивировать" наше последнее приложение, следуя инструкциям из Руководства по разработке для iOS, получившийся ad-hoc app.ipa не установился на мое устройство разработки из-за проблемы с разрешениями. Когда я перестроил с помощью файла Entitlements.plist, новый app.ipa установился нормально.

К сожалению, включение Entitlements.plist в app.ipa означает, что получившаяся сборка не может быть просто переподписана и отправлена ​​в магазин приложений - верно? Вместо этого мне нужно пересобрать без Entitlements.plist и отправить результат в магазин приложений.

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

  1. Будет ли app.ipa, созданный в соответствии с инструкциями в Руководстве по разработке для iOS (без Entitlements.plist, просто подписаться с помощью специального профиля обеспечения распространения), установить OK на устройстве не-dev, которое было должным образом определено в тестовом профиле обеспечения распространения?
  2. Могу ли я проверить точные результаты "Сборки и архивирования" на своем компьютере разработчика, чтобы я мог просто переподписать его и отправить в App Store из XCode?
  3. Будет ли отклонен файл app.ipa, который явно содержит файл Entitlements.plist, если я его отправлю?

Спасибо!

5 ответов

Начиная с Xcode 4.2 вам больше не нужно создавать файл Entitlements.plist при создании приложений, не требующих каких-либо специальных разрешений для запуска. Для разрешения get-task-allow автоматически устанавливается значение true или false, в зависимости от того, с каким профилем предоставления доступа вы подписываете свое приложение (Developer, Ad Hoc или App Store).

ссылка: http://help.testflightapp.com/customer/portal/articles/535398-invalid-profile-distribution-build-entitlements-must-have-get-task-allow-set-to-false-

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

Из библиотеки разработчиков iOS:

Если вы делаете Ad Hoc-дистрибутив, вы должны правильно настроить свой проект, включив в него файл Entitlements.plist и снять флажок get-task-allow (который устанавливает его в False). http://developer.apple.com/library/ios/

Нет проблем с тем, чтобы оставить файл Entitlements.plist в сборке дистрибутива, у меня есть несколько приложений, представленных с ним. На самом деле, Entitlements.plist также предназначен для других функций iOS, которые может использовать ваше приложение:

Entitlements. Эти файлы определяют свойства, которые предоставляют вашему приложению доступ к функциям iOS (таким как push-уведомления) и защищенным данным (таким как цепочка для ключей пользователя).

http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/115-Configuring_Applications/configuring_applications.html

Также проверьте этот ответ: исполняемый файл был подписан с недействительными правами

Get-task-allow теперь называется "Может быть отлажено" в Xcode 4.1, если вы использовали инструмент модернизации

У меня нет ответов на все ваши вопросы, но мне нужно было добавить Entitlements.plist, когда я недавно использовал специальный дистрибутив для некоторого тестирования. Я думаю, что в документации все еще говорится о настройке "get-task-allow" в.plist, но когда я точно следовал инструкциям, у меня возникли проблемы с подписью приложения. Вместо этого я создал Entitlements.plist, используя шаблон Xcode. Он имеет две или три настройки, ни одна из которых не является get-task-allow. Я оставил его точно так же, как и при создании, и сборка прошла успешно.

Мой предыдущий опыт заключался в том, что приложения, отправленные в магазин приложений с включенным Entitlements.plist, не прошли этап проверки.

Другие вопросы по тегам