web-dev-qa-db-fra.com

iOS9: "Impossible de télécharger l'application"

Nous développons une application iOS interne pour notre entreprise. Nous créons un lien de distribution local du formulaire

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

Cela a bien fonctionné pendant longtemps, y compris iOS8 et toutes les versions bêta d'iOS9.

Cependant, maintenant, pour chaque appareil mis à jour vers l'iOS9 officiel, lorsque nous essayons d'installer à partir du lien ci-dessus, nous obtenons cette boîte de dialogue:

dialog of error

J'ai capturé le journal en appuyant sur "installer" jusqu'à ce que j'obtienne cette erreur. il est montré ici. Dès le début, il y a un "ios8fix" suspect que nous ne mettons pas, et l'une des sorties d'échec prétend BundleValidator: Echec bundleIdentifier: MY_APP_ID.ios8fix ne correspond pas à bundleIdentifier attendu: MY_APP_ID

Veuillez noter que "créer un nouveau profil d'approvisionnement" n'est pas une bonne solution, car j'essaie de distribuer une mise à jour sur une application existante.

J'ai déjà brûlé une journée idiote (ok. Toute la journée) en essayant de résoudre ce problème, et j'apprécierais tout indice ici!

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

Votre identifiant de bundle doit être correct maintenant.

Cela a été fait comme un correctif, pour un ancien problème en 8.2. J'ai également eu certaines de ces extensions 'ios8fix' sur mes applications, ce qui a cassé OTA pour 9.0 GM. Oui, cela a fonctionné à travers toutes les bêtas.

Vérifiez donc votre manifest.plist pour vous assurer qu'il correspond vraiment à votre identifiant d'application réel ... corrigez cette entrée de plist.

À propos, vous pouvez facilement mettre à jour ce plist avec n'importe quel éditeur de texte.

mes points d'entrée pointent vers un plist que je sers également dans mon entreprise, voici l'ancien plist entier

<?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>

Voir l'identifiant du bundle? dupuy.robert.APPNAME.ios82fix est faux! Cela a été ajouté comme correctif pour un problème précédent Apple.

Mais à partir de GM 9.0 - cet identifiant de bundle doit être strictement correct.

Donc, corrigez votre plist ou pointez sur un nouveau plist correct. Ces listes ne sont que de simples fichiers ... devraient être une solution facile! Dans mon cas, "dupuy.robert.APPNAME.ios82fix" vient d'être changé en "dupuy.robert.APPNAME" et la liste a été enregistrée de nouveau. Bien que si votre serveur Web cache les caches, c'est un autre casse-tête s'il continue de servir l'ancien, si vous pouvez renommer le fichier, tant mieux.

12
Robert Dupuy

Consultez votre manifeste.plist.

J'ai rencontré le même problème et l'ai résolu au cours de la lutte de trois jours. Pour les appareils iOS8, vous devez utiliser l'ancien plist. Pour les versions iOS9, vous devez utiliser un nouveau plist (fait Xcode7). Ceci est la norme. le fichier ipa est le même (build Xcode7 Archive).

Le nouveau plist nécessite deux images d'installation. 57x57.jpg et 512x512.jpg. Vous devez également les organiser. L'identifiant du bundle doit être correct (identique à Xcode7> CIBLES> Général> Identifiant du bundle).

J'ai testé 4 appareils.

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

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

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

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

Le processus d'installation OTA rend votre appareil déroutant. Dans cette situation, le redémarrage est utile. J'espère que cela aide.

3
Keisuke Uemura

Cela semble être un bogue dans iOS9, où il met en cache toutes les erreurs OTA précédentes.

J'ai réinstallé mes installations en utilisant une combinaison de suppression de l'application sur l'appareil, en changeant le manifest.plist puis redémarrer l'appareil. Cela a semblé vider le cache et l'application a été installée.

3
Michael Gaylord

Même problème, avec un redémarrage de l'appareil a été résolu.

Les marches:

  1. Supprimer l'ancienne application

  2. Redémarrez l'appareil

  3. Installez la nouvelle APP

1
Max

Auparavant, j'ai changé le nom ipa et l'identifiant du bundle pour le télécharger dans ios 8.2. Maintenant, dans ios 9, je viens d'utiliser le nom ipa d'origine et le nom de l'identifiant du bundle précédent. Ça marche.

0
NaveenReddy

J'ai eu le même problème mais dans mon cas, le nom de l'application avait un espace et en supprimant l'espace, tout était bon.

0
fernando

Mon problème a été résolu après l'ajout des nouvelles propriétés d'image display-image et full-size-image au fichier .plist:

                <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