У меня есть корпоративное приложение, которое я распространяю по itms
URL-адресу:
itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=https://$MY_PLIST_URL.plist
На iOS 7 и загрузка, и обновления работают нормально. Однако на iOS 8 я получаю сообщение об ошибке:
LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.mycom.MyApp
В моем списке у меня есть
<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>
и в моем приложении на iOS 8 я использую версию 0.2.1
ios
xcode
ios8
enterprise-distribution
Патрик Перини
источник
источник
Ответы:
Я также столкнулся с этой проблемой при распространении нашего приложения. Мы смогли решить эту проблему, «подделав» идентификатор пакета в .plist, который использовался для распространения загрузки, сохранив при этом идентификатор пакета ipa.
Например, в вашем списке:
измените com.mycom.MyApp на com.mycom.MyApp.ios8fix
Приложение будет установлено с использованием нового значка приложения, который исчезнет после установки.
Если у вас уже установлено приложение, вы даже увидите значок нового приложения во время установки. После установки этот значок исчезнет, но ваша уже существующая версия приложения будет обновлена. При чистой установке значок установки исчезнет, а значок установленного приложения появится на месте.
Похоже, что iOS 8 кэширует идентификаторы пакетов и сравнивает запрошенные установки с этими кэшированными. В большинстве случаев вы увидите только всплывающее окно с запросом на установку, но ничего не происходит.
Как уже заметил Шон, это появляется в xCode 6 GM и официальной версии iOS 8. У устройств, на которые раньше не устанавливали ваше приложение, не возникнет проблем с его установкой.
источник
Это сработало для меня лучше, не нужно трогать ваш манифест или другие уловки (идеально подходит для Xcode Server, где
plist
он создается автоматически):Это сбрасывает кеши устройства, теперь вы можете установить свое приложение как обычно.
источник
У меня та же проблема. Я воспроизвел его:
1) Установка моего приложения при обновлении с iOS 7 до iOS 8 GM
2) Удаление в iOS 8
3) Пробуем установить через itms-services: с таким же названием пакета
Когда я попытался изменить идентификатор пакета в plist сервера (не в Info.plist приложений), это сработало (приложение было загружено, значок «тени» не остался). Но похоже на яблочный жучок.
источник
Принятое решение больше не работает на iOS9.
Насколько я понимаю, Apple закрыла серьезную дыру в безопасности iOS, не позволяя специальным двоичным файлам заменять стандартные приложения или приложения, загруженные из App Store. Историю см. В этой статье (CVE-2015-3722 / 3725 и CVE-2015-3725):
https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html
С точки зрения безопасности, я бы не ожидал, что это поведение изменится в будущих версиях IOS. Альтернативные варианты кажутся такими:
источник
То, что сказал Гил, кажется правильным, но, в частности, я обнаружил, что мне также нужно увеличить строку версии пакета в server.plist:
Это, по крайней мере, позволяет выполнить установку OTA.
(Извините ... Добавил бы в комментарии, но я слишком неряха.)
источник
Просмотрите этот ответ и этот ответ .
Вы можете решить эту проблему без каких - либо хаков для iOS8 вы должны включить в
assets
ключе манифеста.plist
файла ,display-image
иfull-size-image
ключи. Они были доступны в Xcode 5 при сохранении архива для корпоративного и дополнительного развертывания, но не требовались.Я создал суть на github с шаблоном для файла install-manifest.plist .
источник
Это ошибка, впервые обнаруженная в iOS8 Beta5. И это до сих пор не было исправлено Apple в семенах GM и официальной версии iOS8.0. Больше обсуждений можно найти здесь
Текущее обходное решение, которое я тестирую:
источник
Проблема решена изменением идентификатора пакета в plist.
Обычно после нажатия ссылки itms отображается рабочий стол, на котором отображается значок установки. Однако для моего устройства iOS 8.0 после нажатия ссылки itms он не перейдет на страницу установки, но установка уже выполняется.
источник
Это экстремально, но если вы не можете изменить свой идентификатор пакета, а я не мог, восстановление вашего iPhone через iTunes до последней версии iOS 8 и восстановление из резервной копии решает проблему.
источник
Та же проблема существует в iOS 10 beta 1.
Одна вещь, которую я здесь не понимаю, - это то, что дата 31 декабря в журнале устройства XCode, однако на устройстве настроены правильная дата и время.
Обновление: ребята из HockeyApp уведомили Apple об этой проблеме во время WWDC, и исправление должно появиться в следующем сиде.
источник
Если вы создаете свои приложения для iOS с помощью сценария сборки и ранее использовали PackageApplication с флагом --sign, это может вызывать проблемы. Флаг --sign больше не работает при сборке 10.10, и после его удаления все наши приложения для iOS снова устанавливаются.
см .: https://devforums.apple.com/thread/251624?tstart=0
источник
Убедитесь, что у вас есть полный доступ в Интернет.
У меня была такая же проблема с установкой OTA и IOS8. Поскольку я нахожусь за корпоративным прокси-сервером, вышеперечисленные решения не работали, пока я не установил ручные настройки прокси-сервера (не требуемые в IOS7) для решения этой проблемы.
источник
Я только что столкнулся с этой проблемой на устройстве под управлением 8.1, обновление устройства до версии 8.3 решило проблему. Таким образом, либо ошибка больше не присутствует в версии 8.3 ...., либо в результате обновления все равно были удалены кэшированные данные.
источник