Как приложение iOS установлено на устройстве
Мне интересно узнать технические подробности о том, как приложение iOS устанавливается на устройстве.
Позвольте мне объяснить мою ситуацию,
- У меня есть приложение .ipa и .plist на сервере. Я сделал веб-страницу загрузки, которая использует itms-services, чтобы указать на файл .plist.
- Я пытаюсь установить приложение на iPhone моего друга, который добавлен в профиль подготовки проекта.
- Приложение загружается на его устройство, но остается в ожидании.
Я хотел бы знать, как приложение устанавливается, добавляется ли оно в очередь? Если одно приложение, у которого есть проблема с установкой, не удается установить, как это влияет на другие приложения, которые я хочу установить. В частности, я хочу знать , что означает состояние ожидания,?
Эта проблема возникает не только на моем другом iPhone, но и на моем iPhone. Однако у моего iPhone есть более серьезная проблема, я не могу установить какие-либо приложения, потому что все приложения переходят в состояние ожидания.
У моего друга iPhone (iPhone 5S) есть iOS 7.0.4, у меня iPhone 4S с iOS 7.0.3.
EDIT 03/12/13 - 09:30
Вот консольная консоль iPhone Configuration Utility во время попытки установки.
... itunesstored[102] <Warning>: LaunchServices: installing placeholder for **.***.****.***********
... installd[62] <Notice>: 0x2c3000 handle_install_for_ls: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/4703876283909900519.app" requested by itunesstored
... installd[62] <Notice>: 0x2c3000 MobileInstallationInstall_Server: Installing app **.***.****.***********
... installd[62] <Notice>: 0x2c3000 install_application: Installing placeholder
... installd[62] <Notice>: 0x2c3000 MobileInstallationInstall_Server: Staging: 0.07s; Waiting: 0.00s; Installation: 0.24s; LS Sync: 0.00s; Overall: 0.38s
... filecoordinationd[128] <Warning>: sandboxing denied subscription to progress on category **.***.****.*********** (bundle id (null), ******-****-*****-*****-*********)
Я предполагаю, что песочница лишена подписки на прогресс в категории, а (идентификатор пакета (null) - соответствующие ошибки, но я не могу найти никакой информации на них на Google, какие-нибудь идеи?
EDIT 03/12/13 - 09:39
Я также хотел бы добавить, что я получаю эти же ошибки для любого приложения, которое я пытаюсь установить из AppStore на своем iPhone.
РЕДАКТИРОВАТЬ 03/12/13 - 09:53
Кроме того, приложение устанавливается просто отлично с помощью ad-hoc на старом iPad под управлением iOS 5.1.1.
EDIT 03/12/13 - 16:18
После создания резервной копии сначала в iTunes, а затем выполните настройки → Reset → Стереть все содержимое и настройки, приложение было успешно установлено! Прежде чем это сделать, ни мой друг, ни я не могли устанавливать какие-либо приложения (а не наше приложение), но теперь мы оба можем установить наше приложение или любое другое приложение на наших телефонах.
Поскольку это не идеальное решение, я не знаю, в чем проблема, я не знаю, что "Ожидание... действительно означает, я хочу оставить вопрос открытым".
Ответы
Ответ 1
Я лично использую iResign
для выхода из ipa с правильным профилем подготовки.
https://github.com/maciekish/iReSign
Это избавляет меня от изменения профилей подготовки в проекте xCode
и создания нового архива. Ipa может быть скомпенсировано в несколько раз.
Я бы порекомендовал, прежде чем подписывать файл, посмотреть профиль обеспечения, открыв его в текстовом редакторе и убедиться, что UDID для устройства, которое вы пытаетесь установить приложение, включен в файл.
Как только вы используете ipa Beta Builder
для создания файла plist вместе с хорошим html файлом, который может быть загружен на ftp.
http://www.hanchorllc.com/2010/08/24/introducing-ios-beta-builder/
Таким образом, теперь все, что нужно сделать пользователю, - это посетить URL-адрес своего телефона, чтобы загрузить приложение.
У вас не должно быть никаких проблем с этим методом, кроме вашего интернет-соединения.
Ответ 2
Обычно, если adhoc-установка через Интернет выходит из строя из-за недействительной инициализации, установленной в ipa, неправильных настроек набора или тайм-аутов из-за подключения к Интернету.
Я бы посмотрел, какие настройки прав вы используете в xcode. Разрешить задание задано в false.
Если это не право, я должен войти в itunes connect, убедитесь, что ваш профиль распространения имеет правильные устройства, установленные для него. Удалите свой локальный профиль распространения, загрузите профиль из itunes connect и переустановите в свой брелок. Это делается для того, чтобы избежать того, что старые профили все еще ссылаются.
Быстрый и простой способ установки ipas - использовать инструмент настройки iphone, например, paul. Я думаю, что была ошибка с mavericks, но это может быть исправлено сейчас. В худшем случае вы можете перетащить ipa в устройство через организатор.