Нужен ли мне файл Entitlements.plist для специальной сборки?
Инструкции, приведенные на странице " Распространение" на портале обеспечения iOS, по-прежнему четко описывают процесс создания и включают файл Entitlements.plist в сборку для специального распространения. На странице "Распространение приложений" в Руководстве по разработке для iOS ничего не говорится о файле Entitlements.plist.
Когда я попытался "собрать и заархивировать" наше последнее приложение, следуя инструкциям из Руководства по разработке для iOS, получившийся ad-hoc app.ipa не установился на мое устройство разработки из-за проблемы с разрешениями. Когда я перестроил с помощью файла Entitlements.plist, новый app.ipa установился нормально.
К сожалению, включение Entitlements.plist в app.ipa означает, что получившаяся сборка не может быть просто переподписана и отправлена в магазин приложений - верно? Вместо этого мне нужно пересобрать без Entitlements.plist и отправить результат в магазин приложений.
Я думаю, что у меня действительно есть несколько связанных вопросов:
- Будет ли app.ipa, созданный в соответствии с инструкциями в Руководстве по разработке для iOS (без Entitlements.plist, просто подписаться с помощью специального профиля обеспечения распространения), установить OK на устройстве не-dev, которое было должным образом определено в тестовом профиле обеспечения распространения?
- Могу ли я проверить точные результаты "Сборки и архивирования" на своем компьютере разработчика, чтобы я мог просто переподписать его и отправить в App Store из XCode?
- Будет ли отклонен файл app.ipa, который явно содержит файл Entitlements.plist, если я его отправлю?
Спасибо!
5 ответов
Начиная с Xcode 4.2 вам больше не нужно создавать файл Entitlements.plist при создании приложений, не требующих каких-либо специальных разрешений для запуска. Для разрешения get-task-allow автоматически устанавливается значение true или false, в зависимости от того, с каким профилем предоставления доступа вы подписываете свое приложение (Developer, Ad Hoc или App Store).
Я только что попробовал, не нужно никаких прав для простого 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-уведомления) и защищенным данным (таким как цепочка для ключей пользователя).
Также проверьте этот ответ: исполняемый файл был подписан с недействительными правами
Get-task-allow теперь называется "Может быть отлажено" в Xcode 4.1, если вы использовали инструмент модернизации
У меня нет ответов на все ваши вопросы, но мне нужно было добавить Entitlements.plist, когда я недавно использовал специальный дистрибутив для некоторого тестирования. Я думаю, что в документации все еще говорится о настройке "get-task-allow" в.plist, но когда я точно следовал инструкциям, у меня возникли проблемы с подписью приложения. Вместо этого я создал Entitlements.plist, используя шаблон Xcode. Он имеет две или три настройки, ни одна из которых не является get-task-allow. Я оставил его точно так же, как и при создании, и сборка прошла успешно.
Мой предыдущий опыт заключался в том, что приложения, отправленные в магазин приложений с включенным Entitlements.plist, не прошли этап проверки.