wake-up-neo.com

Enterprise App Update Distribution unter iOS 8

Ich habe eine Unternehmensanwendung, die ich über eine itms URL verteile:

itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=https://$MY_PLIST_URL.plist

Unter iOS 7 funktionieren sowohl Downloads als auch Updates einwandfrei. Unter iOS 8 erhalte ich jedoch den Fehler:

LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.mycom.MyApp

In meiner plist habe ich

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

auf meiner App unter iOS 8 wird Version 0.2.1 ausgeführt

110
Patrick Perini

Dieses Problem ist auch bei unserer App-Distribution aufgetreten. Wir konnten dieses Problem beheben, indem wir die Paket-ID in der .plist für die Download-Verteilung "fälschten" und die IPA-Paket-ID beibehalten.

Zum Beispiel in Ihrer Liste:

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

ändern Sie com.mycom.MyApp in com.mycom.MyApp.ios8fix

Die App wird mit einem neuen App-Symbol installiert, das nach der Installation nicht mehr angezeigt wird.

Wenn Sie die App bereits installiert haben, wird während der Installation sogar ein neues App-Symbol angezeigt. Nach der Installation verschwindet dieses Symbol, aber Ihre bereits vorhandene Version der App wird aktualisiert. Bei einer Neuinstallation verschwindet das Installationssymbol und das installierte Anwendungssymbol wird angezeigt.

Es sieht so aus, als würde iOS 8 die Bundle-IDs zwischenspeichern und die angeforderten Installationen mit diesen zwischengespeicherten Installationen vergleichen. In den meisten Fällen wird nur ein Popup-Fenster angezeigt, in dem Sie nach der Installation gefragt werden. Es geschieht jedoch nichts.

Wie Sean bereits bemerkt hat, erscheint dies mit xCode 6 GM und der offiziellen iOS 8-Version. Geräte, die Ihre Anwendung noch nie installiert haben, haben keine Probleme, die App zu installieren.

90
Antoine

Dies funktionierte besser für mich, ohne dass Sie Ihr Manifest oder andere Tricks anfassen müssen (perfekt für Xcode Server, bei dem plist automatisch generiert wird):

  1. IExplorer herunterladen ( http://www.macroplant.com/iexplorer/ )
  2. Stecken Sie Ihr Gerät
  3. Löschen Sie alle Dateien in "Medien> Downloads"
  4. Gerät neustarten

Dadurch werden die Geräte-Caches zurückgesetzt. Jetzt können Sie Ihre App wie gewohnt installieren.

24
jlpiedrahita

Ich habe das gleiche Problem. Ich habe es reproduziert von:

1) Ich habe meine Anwendung während des Upgrades von iOS 7 auf iOS 8 GM installiert

2) Entfernen Sie es in iOS 8

3) Der Versuch, es über itms-services zu installieren: mit demselben Bundle-Namen

Als ich versuchte, die Bundle-ID in der Server-Liste zu ändern (nicht in der Info.plist der Anwendungen), funktionierte dies (die Anwendung wurde heruntergeladen und es blieb kein "Schatten" -Symbol übrig). Aber es sieht aus wie ein Apple Bug.

16
Gil Hartman

Die akzeptierte Lösung funktioniert unter iOS9 nicht mehr.

Meines Wissens nach hat Apple eine ernsthafte Sicherheitslücke für iOS geschlossen, indem verhindert wurde, dass Ad-hoc-Binärdateien Standard-Apps oder aus dem App Store heruntergeladene Apps ersetzen. Hintergrundinformationen finden Sie in diesem Artikel (CVE-2015-3722/3725) und CVE-2015-3725):

https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html

Angesichts der Auswirkungen auf die Sicherheit würde ich nicht erwarten, dass sich dieses Verhalten in zukünftigen Versionen von IOS) ändert. Alternative Optionen scheinen zu sein:

  • löschen Sie die App Store-Version, bevor Sie den Ad-hoc installieren
  • verteilen Sie die Ad-hoc-App als "neue" App, indem Sie die Bundle-ID sowohl in der App als auch in der Verteilungsliste ändern
  • benutze TestFlight
11
Frans

Schauen Sie sich diese Antwort und diese Antwort an.

Sie können dieses Problem ohne Hacks beheben. Für iOS8 müssen Sie den assets -Schlüssel des Manifests .plist Datei die display-image und full-size-image Schlüssel. Sie waren in Xcode 5 verfügbar, als ein Archiv für die Unternehmens- und Add-Hoc-Bereitstellung gespeichert wurde, waren jedoch nicht erforderlich.

Ich habe ein Gist on Github mit der Vorlage für die Datei install-manifet.plist erstellt.

9
alexcristea

Was Gil sagte, scheint richtig zu sein, aber genauer gesagt stellte ich fest, dass ich auch den Bundle-Versions-String in der server.plist erhöhen musste:

    <key>bundle-version</key>
    <string>3.2.2</string>

Auf diese Weise können Sie zumindest eine OTA-Installation durchführen.

(Entschuldigung ... Hätte zu den Kommentaren hinzugefügt, aber ich bin zu sehr ein n00b.)

9
Cfold

Problem durch Ändern der Bündelkennung in plist behoben.

Normalerweise wird nach dem Tippen auf den itms-Link der Desktop mit der Symbolinstallation angezeigt. Auf meinem iOS 8.0-Gerät wird jedoch nach dem Tippen auf den itms-Link nicht auf die Installationsseite gewechselt, sondern die Installation funktioniert bereits.

3
Tallent Siu

Dies ist ein Fehler, der erstmals in iOS8 Beta5 aufgetreten ist. Und es wurde immer noch nicht behoben von Apple in GM Seed- und offizielle iOS8.0-Version. Weitere Diskussionen konnten gefunden werden hier

Die aktuelle Problemumgehung wird von mir getestet:

  • Wenn Ihnen der Inhalt Ihres Geräts egal ist: Führen Sie im DFU-Modus des Geräts eine saubere Wiederherstellung durch
  • Wenn du deine Sachen zurück haben willst
    1. Sichern Sie Ihr iOS-Gerät in iTunes vor der Wiederherstellung (ohne Ad-Hoc-/Enterprise-App)
    2. Installieren Sie Ihre Ad-Hoc/Enterprise-App, nachdem Sie Ihr Gerät sauber wiederhergestellt haben
    3. Stellen Sie Ihr Backup von iTunes wieder her
    4. Jetzt können Sie diese Ad-Hoc-/Enterprise-Apps löschen und neu installieren.
3
Xiao

Dies ist extrem, aber wenn Sie Ihre Bundle-ID nicht ändern können, was ich nicht konnte, können Sie das Problem beheben, indem Sie Ihr iPhone über iTunes auf das neueste iOS 8 und von einem Backup wiederherstellen.

2
pho0

Das gleiche Problem besteht unter iOS 10 Beta 1.

31.12. 19:01:32 iphone-6s itunesstored [98]: LoadExternalDownloadManifestOperation: Manifest-Download ignorieren, Bundle-ID bereits vorhanden: com. *************** ios mit Phase: SSDownloadPhaseWaiting

Eine Sache, die ich hier nicht verstehe, ist, dass das Datum im XCode-Geräteprotokoll der 31. Dezember ist. Auf dem Gerät sind jedoch Datum und Uhrzeit korrekt konfiguriert.

pdate: Leute von HockeyApp haben Apple während des WWDC über dieses Problem informiert und das Problem sollte im nächsten Seed behoben werden.

1

Stellen Sie sicher, dass Sie über einen vollständigen Internetzugang verfügen.

Ich hatte das gleiche Problem mit der OTA-Installation und IOS8. Da ich hinter einem Unternehmensproxy stehe, funktionierten die oben genannten Lösungen erst, nachdem ich manuelle Proxy-Einstellungen vorgenommen hatte (in IOS7 nicht erforderlich), um dieses Problem zu lösen.

0
creal

Ich bin gerade auf einem Gerät mit 8.1 auf dieses Problem gestoßen. Ein Upgrade des Geräts auf 8.3 hat das Problem behoben. Entweder ist der Fehler in 8.3 nicht mehr vorhanden ... oder das Upgrade löschte die zwischengespeicherten Daten ohnehin.

0
tom01

Wenn Sie Ihre iOS-Apps mit einem Erstellungsskript erstellen und zuvor PackageApplication mit dem Flag --sign verwendet haben, kann dies zu Problemen führen. Das Flag --sign funktioniert nicht mehr, wenn auf 10.10 aufgebaut und alle unsere iOS-Apps erneut installiert wurden.

siehe: https://devforums.Apple.com/thread/251624?tstart=

0
James Moore