webentwicklung-frage-antwort-db.com.de

iOS9: "App kann nicht heruntergeladen werden"

Wir entwickeln eine interne iOS-App für unser Unternehmen. Wir erstellen eine lokale Vertriebsverbindung des Formulars

itms-services://?action=download-manifest&url=https://INTERNAL-PATH/manifest.plist

Es hat lange gut funktioniert, einschließlich iOS8 und allen Betas von iOS9.

Jetzt erhalten wir jedoch für jedes Gerät, das auf das offizielle iOS9 aktualisiert wurde, bei dem Versuch, über den obigen Link zu installieren, den folgenden Dialog:

dialog of error

Ich habe das Protokoll vom Drücken von "Installieren" erfasst, bis dieser Fehler angezeigt wird. es wird hier gezeigt. Von Anfang an gibt es einen verdächtigen "ios8fix" , den wir nicht setzen, und einer der Fehlerausgaben behauptet BundleValidator: Fehlgeschlagener BundleIdentifier: MY_APP_ID.ios8fix stimmt nicht mit erwartetem BundleIdentifier überein: MY_APP_ID

Beachten Sie, dass "Neues Bereitstellungsprofil erstellen" keine gute Lösung ist, da ich versuche, ein Update über eine vorhandene App zu verteilen.

Ich habe schon einen Narrentag (ok. Ganzen Tag) damit verbracht, dies zu lösen, und würde mich über jeden Hinweis hier freuen!

itunesstored[123] <W>: LoadExternalDownloadManifestOperation: Canceling failed manifest download for replace: MY_APP_ID.ios8fix
itunesstored[123] <W>: [Download]: Adding download(s): -4949958484440492382
itunesstored[123] <W>: LaunchServices: installing placeholder for <LSApplicationProxy: 0x148840860> MY_APP_ID.ios8fix <(null) *Not found in database*>
installd[47] <N>: 0x16e087000 -[MIClientConnection installPath:withOptions:completion:]: Install of "/var/mobile/Library/Caches/com.Apple.itunesstored/AppPlaceholders/-4949958484440492382.app" type Placeholder requested by itunesstored (pid 123)
installd[47] <N>: 0x16e12f000 -[MIInstaller performInstallationWithError:]: Installing <MIInstallableBundle ID=MY_APP_ID.ios8fix; Version=8.38.5, ShortVersion=(null)>
installd[47] <N>: 0x16e12f000 -[MIContainer makeContainerLiveReplacingContainer:reason:withError:]: Made container live for MY_APP_ID.ios8fix at /private/var/mobile/Containers/Data/Application/A64E6947-B7E7-46A9-B517-4887AB890E97
installd[47] <N>: 0x16e12f000 -[MIContainer makeContainerLiveReplacingContainer:reason:withError:]: Made container live for MY_APP_ID.ios8fix at /private/var/mobile/Containers/Bundle/Application/A1ED6552-6C73-4DDE-8CE7-ED10F1BB0553
itunesstored[123] <W>: [Download]: Starting task: 4 with priority: 300 for download: -4949958484440492382 bundleIdentifier: MY_APP_ID.ios8fix in session: com.Apple.itunesstored.default
installd[47] <N>: 0x16e12f000 -[MIInstaller performInstallationWithError:]: Install Successful; Staging: 0.00s; Waiting: 0.00s; Preflight/Patch: 0.00s, Verifying: 0.00s; Overall: 0.12s
itunesstored[123] <W>: LaunchServices: Creating installProgressForApplication:<LSApplicationProxy: 0x148ac35f0> MY_APP_ID.ios8fix (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/A1ED6552-6C73-4DDE-8CE7-ED10F1BB0553/-4949958484440492382.app> withPhase:3
itunesstored[123] <W>: LaunchServices: installPhaseFinishedForProgress: MY_APP_ID.ios8fix.InstallingPlaceholder - <NSProgress: 0x148a7a8c0> : Parent: 0x0 / Fraction completed: 0.0000 / Completed: 0 of 100   called, removing progress from cache
lsd[175] <W>: LaunchServices: Updating installPhase for parent <NSProgress: 0x127d3a430> : Parent: 0x0 / Fraction completed: 0.6000 / Completed: 60 of 100   to 3
ondemandd[192] <E>: Application with ID: MY_APP_ID.ios8fix was installed, but it doesn't appear to have a bundle URL, we are taking no action on this.
itunesstored[123] <W>: LaunchServices: updating placeholder for <LSApplicationProxy: 0x146eb9100> MY_APP_ID.ios8fix (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/A1ED6552-6C73-4DDE-8CE7-ED10F1BB0553/-4949958484440492382.app> with icons
installd[47] <N>: 0x16e12f000 -[MIClientConnection installPath:withOptions:completion:]: Install of "/var/mobile/Library/Caches/com.Apple.itunesstored/AppPlaceholders/-4949958484440492382.app" type Placeholder requested by itunesstored (pid 123)
installd[47] <N>: 0x16e2d3000 -[MIInstaller performInstallationWithError:]: Installing <MIInstallableBundle ID=MY_APP_ID.ios8fix; Version=8.38.5, ShortVersion=(null)>
installd[47] <N>: 0x16e2d3000 -[MIInstallableBundle _refreshUUIDForContainer:withError:]: Data container for MY_APP_ID.ios8fix is now at /private/var/mobile/Containers/Data/Application/20871483-6F78-424D-8ED1-BA18BD2959BA
installd[47] <N>: 0x16e2d3000 -[MIContainer makeContainerLiveReplacingContainer:reason:withError:]: Made container live for MY_APP_ID.ios8fix at /private/var/mobile/Containers/Bundle/Application/D1ABD072-5949-452A-A20E-50F5C10310AA
installd[47] <N>: 0x16e2d3000 -[MIInstaller performInstallationWithError:]: Install Successful; Staging: 0.00s; Waiting: 0.00s; Preflight/Patch: 0.00s, Verifying: 0.00s; Overall: 0.06s
ondemandd[192] <E>: Application with ID: MY_APP_ID.ios8fix was installed, but it doesn't appear to have a bundle URL, we are taking no action on this.
SpringBoard[54] <W>: FBApplicationPlaceholder We received a nil BSCFBundle back, which means _CFBundleCreateUnique. Here's what -[NSFileManager attributesOfItemAtPath:error:] is giving us: (null)
        here's the error we got back (if any): Error Domain=NSCocoaErrorDomain Code=260 "The file “-4949958484440492382.app” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/private/var/mobile/Containers/Bundle/Application/A1ED6552-6C73-4DDE-8CE7-ED10F1BB0553/-4949958484440492382.app, NSUnderlyingError=0x12a552020 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}
SpringBoard[54] <W>: -[FBBundleInfo _initWithBundleURL:] ERROR: Unable to create bundle at path: /private/var/mobile/Containers/Bundle/Application/A1ED6552-6C73-4DDE-8CE7-ED10F1BB0553/-4949958484440492382.app
ondemandd[192] <E>: An object with ID [0x12de8a220 <x-coredata:///AssetDownloads/tAC876614-AA9B-432E-9691-02EE36693D1013>] has already registered.
itunesstored[123] <W>: LaunchServices: Creating installProgressForApplication:<LSApplicationProxy: 0x148a553a0> MY_APP_ID.ios8fix (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/D1ABD072-5949-452A-A20E-50F5C10310AA/-4949958484440492382.app> withPhase:0
lsd[175] <W>: LaunchServices: Updating installPhase for parent <NSProgress: 0x127d3a430> : Parent: 0x0 / Fraction completed: 0.6000 / Completed: 60 of 100   to 0
<-- 19 seconds gap -->
itunesstored[123] <W>: [Download]: Download task did finish: 4 for download: -4949958484440492382
itunesstored[123] <W>: [ApplicationWorkspace] Installing download: -4949958484440492382 with step(s): Install
itunesstored[123] <W>: [ApplicationWorkspace]: Installing software package with bundleID: MY_APP_ID.ios8fix: bundleVersion: 8.38.5 path: /var/mobile/Media/Downloads/-4949958484440492382/-5671360055536325805
itunesstored[123] <W>: BundleValidator: Failed bundleIdentifier: MY_APP_ID.ios8fix does not match expected bundleIdentifier: MY_APP_ID
itunesstored[123] <W>: [ApplicationWorkspace]: Bundle validated for bundleIdentifier: MY_APP_ID.ios8fix success: 0
itunesstored[123] <W>: LaunchServices: Uninstalling placeholder for app <LSApplicationProxy: 0x14884ffc0> MY_APP_ID.ios8fix (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/D1ABD072-5949-452A-A20E-50F5C10310AA/-4949958484440492382.app>
itunesstored[123] <W>: LaunchServices: Uninstalling app <LSApplicationProxy: 0x14884ffc0> MY_APP_ID.ios8fix (Placeholder) <file:///private/var/mobile/Containers/Bundle/Application/D1ABD072-5949-452A-A20E-50F5C10310AA/-4949958484440492382.app>
installd[47] <N>: 0x16e087000 -[MIClientConnection uninstallIdentifiers:withOptions:completion:]: Uninstall requested by itunesstored (pid 123) with options: {
    }
installd[47] <N>: 0x16e087000 -[MIUninstaller _uninstallBundleWithIdentifier:error:]: Uninstalling identifier MY_APP_ID.ios8fix
installd[47] <N>: 0x16e087000 -[MIUninstallNotifier performRemovalWithCompletionBlock:]: Destroying container with identifier MY_APP_ID.ios8fix at /private/var/mobile/Containers/Bundle/Application/D1ABD072-5949-452A-A20E-50F5C10310AA
installd[47] <N>: 0x16e087000 -[MIUninstallNotifier performRemovalWithCompletionBlock:]: Destroying container with identifier MY_APP_ID.ios8fix at /private/var/mobile/Containers/Data/Application/20871483-6F78-424D-8ED1-BA18BD2959BA
itunesstored[123] <W>: LaunchServies: No app bundle to remove for MY_APP_ID.ios8fix
lsd[175] <W>: LaunchServices: Updating identifier store
itunesstored[123] <W>: LaunchServices: clearing created progress for MY_APP_ID.ios8fix
itunesstored[123] <W>: [ApplicationWorkspace]: Uninstalling application placeholder for bundleIdentifier: MY_APP_ID.ios8fix; success: 1
itunesstored[123] <W>: [ApplicationWorkspace]: Failed to install application: MY_APP_ID.ios8fix; /var/mobile/Media/Downloads/-4949958484440492382/-5671360055536325805; Error Domain=SSErrorDomain Code=143 "(null)"
itunesstored[123] <W>: [ApplicationWorkspace] Install complete for download: -4949958484440492382 result: Failed
itunesstored[123] <W>: [Download]: Fail download: -4949958484440492382 after error: Error Domain=SSErrorDomain Code=143 "(null)"
16
ishahak
MY_APP_ID.ios8fix

Ihre Bündelkennung muss jetzt korrekt sein.

Dies wurde als Korrektur für ein altes Problem in 8.2 durchgeführt. Ich hatte auch einige dieser "ios8fix" -Erweiterungen in meinen Apps, die OTA für 9.0 GM brachen. Ja, es hat bei allen Betas funktioniert.

Überprüfen Sie also Ihre manifest.plist, um sicherzustellen, dass sie wirklich mit Ihrer tatsächlichen App-ID übereinstimmt. Korrigieren Sie diesen plist-Eintrag.

Übrigens können Sie diese Liste einfach mit einem beliebigen Texteditor aktualisieren.

meine itms-einstiegspunkte zu einer pliste, die ich auch in meiner firma bediene, hier ist die gesamte alte pliste

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>http://removed.cachefly.net/noname.ipa</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>dupuy.robert.APPNAME.ios82fix</string>
                <key>bundle-version</key>
                <string>1.0.7</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>Appname 1.0.7</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

Siehe die Bundle-ID? dupuy.robert.APPNAME.ios82fix ist falsch! Dies wurde als Korrektur für ein früheres Apple Problem hinzugefügt.

Aber ab GM 9.0 - muss diese Bundle-ID unbedingt korrekt sein.

Korrigieren Sie also entweder Ihre Pliste oder zeigen Sie auf eine neue richtige Pliste. Diese Listen sind nur einfache Dateien ... sollten eine einfache Lösung sein! In meinem Fall wurde "dupuy.robert.APPNAME.ios82fix" in "dupuy.robert.APPNAME" geändert und die Liste erneut gespeichert. Auch wenn Ihr Webserver Plists zwischenspeichert, ist dies ein weiterer Nachteil, wenn der alte Server weiterhin bedient wird. Wenn Sie die Datei umbenennen können, ist dies umso besser.

12
Robert Dupuy

Überprüfen Sie Ihre manifest.plist.

Ich bin auf dasselbe Problem gestoßen und habe es während des dreitägigen Kampfes behoben. Für iOS8-Geräte müssen Sie alte Plist verwenden. Für iOS9-Geräte muss eine neue (von Xcode7 erstellte) Liste verwendet werden. Das ist der Standard. Die ipa-Datei ist dieselbe (Xcode7-Archiv-Build).

Neue plist erfordert zwei Installationsimages. 57 x 57.jpg und 512 x 512.jpg. Sie müssen sie auch arrangieren. Die Bundle-ID muss korrekt sein (wie Xcode7> ZIELE> Allgemein> Bundle-ID).

Ich habe 4 Geräte getestet.

iPad Air (iOS9.0.1) -> OK (von iOS9 plist)

iPad 3 (iOS8.4.1) -> OK (von iOS8 plist)

iPad 2 (iOS9.0) -> OK (von iOS9 plist)

iPad mini (iOS9.0) -> OK (von iOS8 plist)

Der OTA-Installationsprozess verwirrt Ihr Gerät. In dieser Situation ist ein Neustart hilfreich. ich hoffe es hilft.

3
Keisuke Uemura

Dies scheint ein Fehler in iOS9 zu sein, in dem alle vorherigen OTA-Fehler zwischengespeichert werden.

Ich habe meine Installationen wieder zum Laufen gebracht, indem ich die App auf dem Gerät gelöscht und das manifest.plist und dann das Gerät neu starten. Dies schien den Cache zu leeren und die App wurde installiert.

3
Michael Gaylord

Gleiches Problem, mit dem ein Neustart des Gerätes behoben wurde.

Die Schritte:

  1. Löschen Sie die ALTE APP

  2. Starte das Gerät neu

  3. Installieren Sie die neue APP

1
Max

Zuvor habe ich den IPA-Namen und die Bundle-ID geändert, um sie in ios 8.2 herunterzuladen. Jetzt wurde in ios 9 nur der ursprüngliche IPA-Name und der vorherige Paket-ID-Name verwendet. Es klappt.

0
NaveenReddy

Ich hatte das gleiche Problem, aber in meinem Fall hatte der Name der App ein Leerzeichen und durch Entfernen des Leerzeichens war alles in Ordnung.

0
fernando

Mein Problem wurde behoben, nachdem die neuen Bildeigenschaften Anzeigebild und Vollbild zur .plist-Datei hinzugefügt wurden:

                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>linktoyouripa</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>display-image</string>
                    <key>url</key>
                    <string>someimage.png</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>full-size-image</string>
                    <key>url</key>
                    <string>someimage.png</string>
                </dict>
0
Stefan S