Как приложение 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 в устройство через организатор.