wake-up-neo.com

iOS 8 - Enterprise App kann nicht installiert werden

Unser Unternehmen verfügt über eine App, die mithilfe von Enterprise Distribution über eine Website heruntergeladen werden kann.

Enterprise Distribution Site

Wenn Sie in iOS 8 Beta 5 auf den Download-Link tippen, wird das erwartete Popup "(Website) möchte installieren (App-Name)" angezeigt. Wenn Sie in diesem Dialogfeld zuerst auf "Installieren" tippen, bleibt die App "Warten ..." hängen.

App stuck waiting

Bis es schließlich anzeigt: "App kann nicht heruntergeladen werden (App-Name) konnte zu diesem Zeitpunkt nicht heruntergeladen werden."

Unable to Download App

Die Installation funktioniert erwartungsgemäß mit iOS 7.

Das Ausführen der App von Xcode unter iOS 8 funktioniert.

Wie unterstützen wir Enterprise Distribution iOS 8?

Möglicherweise muss eine Änderung an der Manifest-Datei vorgenommen werden? Als ich versuchte, die App in Xcode 6 Beta 7 zu erstellen, forderte mich der Enterprise Archival-Prozess nicht auf, eine Manifestdatei zu erstellen ...

63
Dylan Hand

Als ich über die Konsole des Telefons versuchte, eine meiner Apps zu installieren, stellte ich fest:

Sep  9 12:16:56 iPhone misagent[94] <Error>: attempt to install invalid profile: 0xe8008011
Sep  9 12:16:56 iPhone installd[40] <Error>: 0x100484000 -[MIInstallableBundle _installEmbeddedProfileInBundle:]: Could not install embedded profile: 0xe8008011 (Expired)

Mir unbekannte Gründe: Apple hat die Hälfte meiner Profile ungültig gemacht und mich nicht benachrichtigt. Nach dem Aufrufen von developer.Apple.com wurden ungültige Profile gefunden:

Drücken Sie Edit -> Generate -> Download Erstellen Sie die Anwendung mit dem neuen Profil neu.

Allerdings - Die schlechte Nachricht ist, dass immer noch mindestens eine meiner Apps nicht installiert werden kann. Ein Blick durch die Konsole gibt mir nichts. Ich bin davon überzeugt, dass dies ein Apple Bug ist, also habe ich ein Radar eingereicht: 17622725

Ich hoffe, Ihr Problem ist ein Profilproblem, sonst müssen wir möglicherweise bis heute Abend 1800GMT warten, um zu sehen, ob Apple) es behoben hat.

BEARBEITEN

Mit iOS8 GM - Ich bekomme nur Waiting... - Ich werde Sie über den Fortschritt des Fehlerberichts auf dem Laufenden halten.

EDIT

Nach der Fehlerbehebung wurden einige Korrekturen gefunden:

Fix 1

Wenn die Bilder, mit denen Sie in der Manifest-Liste verknüpfen, ab iOS8 nicht vorhanden sind - Apple installiert die Anwendung nicht auf dem Telefon - Das Manifest ist die Datei, mit der Sie beim Download verknüpfen Seite: itms-services://?action=download-manifest&url={url}

Stellen Sie sicher, dass sowohl full-size-image Als auch display-image Vorhanden sind:

<dict>
    <key>kind</key>
    <string>full-size-image</string>
    <key>needs-shine</key>
    <true/>
    <key>url</key>
    <string>https://{path_to_real_image}</string>
</dict>
<dict>
    <key>kind</key>
    <string>display-image</string>
    <key>needs-shine</key>
    <true/>
    <key>url</key>
    <string>https://{path_to_real_image}</string>
</dict>

Fix 2

Unternehmensanwendungen werden aufgrund eines Fehlers in iOS8 nicht installiert, wenn sie zuvor unter iOS7 vorhanden waren. In der Konsole wird ein Fehler angezeigt:

Ignore manifest download, already have bundleID: {bundle_id}

Dies kann behoben werden, indem das bundleID in der Manifest-Datei vorübergehend geändert wird, aber Apple markiert den Fehlerbericht als dupliziert. Nach internen Tests können Sie das Problem auch beheben durch Ausruhen des Startbildschirmlayouts General -> Reset -> Reset Home Screen Layout

Fix

Wenn Sie sehen, dass die Anwendung im Gegensatz zu installing... In die Phase loading... Übergeht, besteht mit ziemlicher Sicherheit das Problem, dass embedded provisioning profile Abgelaufen ist. Um den Download zu reparieren, müssen Sie erneut archivieren Ihre Anwendung mit einem neuen, aktualisierten Bereitstellungsprofil.

Fix 4

Wenn Sie sehen, dass die Anwendung die Stufe installing... Erreicht und Ihr provisioning profile Gültig ist, laden Sie die Anwendung herunter, während Sie sie an Ihre Konsole anhängen. (Xcode 6> Fenster> Geräte> Linke untere Taste [v]), Sie werden wahrscheinlich feststellen, dass die Installation mit Verification Stage Failed Fehlgeschlagen ist. Im Folgenden wird die Fehlermeldung angezeigt. In meinem Fall (Entitlements found that are not permitted by provisioning profile) - Wechseln Sie für diesen Fehler zu developer.Apple.com und aktualisieren Sie Ihre App-ID, um den richtigen Dienst einzuschließen. Für mich musste App Groups Aktiviert sein. Dann regeneriere deinen provisioning profile

62
William George

Ich habe heute das gleiche Problem: Ich konnte keine meiner Enterprise-Apps auf IOs8 (aber auf IOs7) installieren. Nach vielen Stunden der Suche habe ich endlich diese Nachricht auf der Gerätekonsole gelesen:

<Warning>: LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.ecaste.Crew-Desk

Nach langer Suche habe ich endlich diesen Beitrag gelesen: http://support.hockeyapp.net/discussions/problems/26683-not-able-to-download-apps-ios8-beta-5-autoupdate -manuell-etc

Und am Ende habe ich nur den Namen der Liste und den Link zum Herunterladen des ipa geändert (wahrscheinlich wird der zweite nicht benötigt) und schließlich wird die App installiert.

Schließlich scheint es ein Cache-Problem in IOs8 zu sein, das davon ausgeht, dass die App bereits installiert wurde (und das war nicht der Fall, ich habe sie zuvor deinstalliert).

Ich hoffe das hilft

7
ecaste

Gleicher Fehler hier, ich habe versucht, Bundle-ID, Bundle-Version, Plist ... zu ändern, aber der Fehler bleibt.

Ich weiß, dass das etwas schwierig ist, aber das ist das einzige, was für mich funktioniert:

http://support.hockeyapp.net/discussions/problems/30194-ios8-workaround-can-break-today-extension?full_site=1#comment_35141099

  1. Schließen Sie das Gerät an einen Mac oder PC an
  2. Erstellen Sie ein Backup in iTunes

  3. Installieren Sie den iExplorer: http://www.macroplant.com/iexplorer/

  4. Starten Sie den iExplorer und wählen Sie den Demo-Modus

  5. Wählen Sie in der linken Seitenleiste Medien aus, öffnen Sie den Ordner Downloads und löschen Sie alle darin enthaltenen Dateien

  6. Starten Sie das Gerät neu

  7. Öffnen Sie die Download-Seite und installieren Sie die neueste Version Ihrer App

In der Tat lasse ich die ersten beiden Schritte aus und es funktioniert perfekt :)

Ich hoffe das hilft

7
Eva Madrazo

Stellen Sie das Bereitstellungsziel auf Niedriger ein

Projekt> Build-Einstellung> iOS-Bereitstellungsziel

Ziele> Build-Einstellung> iOS-Bereitstellungsziel

6

Basierend auf früheren Kommentaren zur Meldung "Manifest-Download ignorieren" haben wir versucht, die Bundle-ID (dh com.companyName.AppName) in der .plist so zu ändern, dass sie einen eindeutigen Namen hat, damit iOS 8 sie trotzdem herunterladen/installieren kann. Nach der Installation wird die vorhandene Kopie korrekt ersetzt.

Ich glaube, hier gibt es zwei Probleme. Wenn die .plist auf der https-Website, die auf die mit dem Unternehmenszertifikat signierte .ipa-Datei verweist, eine Paket-ID enthält, die mit einer bereits installierten Anwendung übereinstimmt, wird sie nicht überschrieben. Die Bundle-Version ist für alle unsere .plist-Dateien unterschiedlich, daher sollte sie trotzdem installiert werden. iOS 7 scheint dieses Problem nicht zu haben. Wir planen, dieses Problem zu umgehen, indem wir die Paket-ID in der Liste durcheinander bringen, damit sie immer für den Build eindeutig ist.

Das zweite Problem ist, dass die Anwendung bei erfolgreicher Installation nicht zum Startbildschirm wechselt oder anzeigt, dass sie überhaupt etwas tut. In iOS 7 wird nach Auswahl der Schaltfläche "Installieren" an der Eingabeaufforderung zum Startbildschirm gewechselt, auf dem das Symbol dunkel ist, und eine Fortschrittsanzeige zeigt den Download-Fortschritt an. Dann würde die Anwendung einen blauen Punkt haben, der anzeigt, dass es neu war. Unter iOS 8 wechselt es nicht zum Startbildschirm, sodass es anscheinend nicht funktioniert. Sie können manuell zum Startbildschirm wechseln und sollten ein dunkles Symbol mit einer Fortschrittsanzeige sehen (jetzt an einem neuen Ort, da es nicht weiß, dass es eine vorhandene Anwendung ersetzen wird). Nachdem es erfolgreich heruntergeladen/installiert wurde, wird der blaue Punkt nicht auf der ersetzten Anwendung platziert.

Hoffe das hilft.

3
Chris J

Ich hatte gerade dieses Problem und es wurde von der Hauptpliste verursacht (Tasten: Vollbild + Anzeigebild), die auf URL-Bildpositionen zeigen, die nicht vorhanden sind.

Es sieht so aus, als ob iOS6/iOS7 damit umgehen können, wenn die Bilder nicht existieren, iOS8 diesbezüglich jedoch restriktiver ist.

3
Steven Tsang

Dies verursachte mir große Schmerzen. Ich musste eine neue App OTA nur auf Angestellten-Telefonen außerhalb einer MDM-Lösung installieren. Ich schien jede mögliche Lösung auszuprobieren, die ich im Internet finden konnte, und nichts funktionierte. Am ehesten konnte ich erreichen, dass die App die Ladephase erreicht. Meine Lösung hat eine Woche Arbeit gekostet und verschiedene Dinge ausprobiert. Ich bin nicht sicher, welche in welcher Reihenfolge funktioniert hat und welche sowieso funktioniert hätte, aber hier ist, was ich getan habe:

In meinem Fall hatte ich diese App zuvor mit einem Bereitstellungsprofil eines Entwicklerkontos (im Gegensatz zu einem Enterprise-Konto) erstellt. In Xcode habe ich den Bundle-Bezeichner geändert, um ihm einen neuen Namen zu geben. Er lautete beispielsweise ursprünglich "com.mydomain.myapp" und wurde zu "com.mydomain.mysuperapp".

Stellen Sie sicher, dass die Codesignatur in der App gültig ist und das Vertriebszertifikat für das Enterprise-Konto enthält

Ich hatte das falsche Bereitstellungsprofil verwendet (eines ohne zugeordnete Identitäten), da ich mich für "Automatisch" entschieden hatte. Es wurde problemlos erstellt, aber es wurde nie installiert. Daher habe ich die Codesignatur für "Release" in mein Distributionsprofil geändert (und nicht in das Entwicklungsprofil).

Stellen Sie sicher, dass für die App ein Bereitstellungsziel festgelegt wurde, das niedrig genug für die Geräte ist, die es herunterladen

Die Datei wurde archiviert und für die Enterprise-Bereitstellung exportiert

Manifest muss das 57x57-PNG- und das 512x512-PNG-Image enthalten, andernfalls wird die Installation nicht nach dem Wartestatus beendet

Ich habe eine index.html-Datei erstellt, die so aussah:

<html>
    <body>
        <a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/dw80wahlwupkyd5/MyApp.plist">
            Install Learning Chunks App from Dropbox</a>
    </body>
</html>

Ich hatte ein Plist-Beispiel verwendet, das ich online gefunden hatte und das einige optionale Einstellungen enthielt. Als ich diese verließ, funktionierte der Download nicht. Ich habe sie rausgenommen. Meine Manifest-Plist-Datei wurde MyApp.plist genannt und sah folgendermaßen aus:

<!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>https://dl.dropboxusercontent.com/s/r1bljbkcows7sje/mysuperapp.ipa</string>
                    </dict>
                    <dict>
                        <key>kind</key>
                        <string>display-image</string>
                        <key>needs-shine</key>
                        <true/>
                        <key>url</key>
              <string> https://dl.dropboxusercontent.com/s/ujk9ipcv2naltut/logo57.png</string>
                    </dict>
                    <dict>
                        <key>kind</key>
                        <string>full-size-image</string>
                        <key>needs-shine</key>
                        <true/>
                        <key>url</key>
                  <string>https://dl.dropboxusercontent.com/s/gpebomok83mp9d5/logo512.png</string>
                    </dict>
            </array>
            <key>metadata</key>
                <dict>
                    <key>bundle-identifier</key>
                    <string>com.mydomain.mysuperapp</string>
                    <key>bundle-version</key>
                    <string>1.0</string>
                    <key>kind</key>
                    <string>software</string>
                    <key>title</key>
                    <string>My Super App</string>
                    <key>subtitle</key>
                    <string>My Super App</string>
                </dict>
        </dict>
        </array>
    </dict>
</plist>

Ich habe die Dateien MyApp.plist, index.html, logo57.png, logo512.png und MyApp.ipa auf DropBox hochgeladen. Ich habe die index.html mit denen geteilt, die die App herunterladen müssen.

Der Benutzer kann dann auf den freigegebenen Link in der E-Mail klicken und die App sollte installiert werden.

2
JanB

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=

1
James Moore

EDIT: Das Problem unten ist ein roter Hering. Wie Dylan Hand bereits erwähnte, bestand das Problem für mich darin, dass ich in der Manifestdatei fehlerhafte Bildverknüpfungen hatte. Anscheinend spielte dies für ios7 keine Rolle, aber ios8 beendet die Installation nicht, wenn dies zutrifft. Als ich diesen Verweis entfernt habe, hat es perfekt funktioniert.


Ich habe die gleichen Symptome wie bei OP (dh die Meldung "App kann nicht heruntergeladen werden", aber nur unter iOS 8). Wenn ich versuche zu validieren (dh Organizer -> Validate), erhalte ich die folgende Meldung.

Screenshot of the result of validation

Dies führte mich zu diesem Beitrag: https://stackoverflow.com/a/25757196/751136

Es wird behauptet, dass das erneute Generieren Ihrer Bereitstellungsprofile zu einer neuen Berechtigung mit dem Namen beta-reports-active Führen sollte. Wenn ich dies in meinem Unternehmenskonto versuche, haben die neuen Profile NICHT die neue Berechtigung. Wenn ich jedoch Bereitstellungsprofile in einem anderen Nicht-Unternehmenskonto neu generiere, haben die neuen Profile dieses Feld.

1
eremzeit

Dieses Problem hat mich verrückt gemacht. Nur das hat für Enterprise Distribution geholfen: Nehmen Sie alle erforderlichen Build-Einstellungen vor und klicken Sie auf "Archivieren". Führen Sie den Enterprise Distribution-Prozess aus. Ihnen wird das Organizer-Fenster angezeigt. Suchen Sie auf einem Mac-Computer die .xcacrchive-Datei, indem Sie KRelease auswählen und "Show in Finder" auswählen.

Der Benutzer wird zu dem Ordner navigiert, in dem sich die .xcarchive-Datei befindet. Klicken Sie mit der rechten Maustaste auf die .xcarchive-Datei und wählen Sie die Option "Paketinhalt anzeigen".

Gehen Sie im geöffneten Finder-Fenster zu Products/Applications Select und kopieren Sie die .app-Datei

Erstellen Sie irgendwo auf Ihrer Festplatte einen neuen Ordner mit dem Namen "Payload". Hinweis: Bei dem Ordnernamen wird zwischen Groß- und Kleinschreibung unterschieden. Fügen Sie die kopierte .app-Datei in den Ordner "Payload" ein. Komprimieren Sie den Payload-Ordner, um die Payload.Zip-Datei zu erhalten. Benennen Sie die Payload.Zip-Datei in .ipa um und bündeln Sie sie mit Ihrer .plist. Fertig !!! Die IPA-Datei kann auf den Geräten installiert werden, die im Bereitstellungsprofil registriert sind, das in der XCARCHIVE-Generation verwendet wird.

1
thomas

Mein Problem war, dass ich sowohl in meinem ipa-Dateinamen als auch in dem Verweis auf dieses ipa in meiner Liste ein Leerzeichen hatte. Das Entfernen des Leerzeichens in beiden ermöglichte die Installation

0
jimmyjudas

Ich habe dieses Problem verschärft.

  1. Da Apple hat Bereitstellungsprofile geändert, bitte erneuern Sie die Bereitstellungsprofile (Datei 1) und kopieren Sie es in die "Payload /".
  2. Stellen Sie sicher, dass sich in der "Payload /" eine Entitlements.plist (Datei 2) befindet, und dass diese Plist-Datei PLAIN TEXT sein muss, der durch einen Text erstellt wird Editor.
  3. Stellen Sie sicher, dass sich in "Payload /" eine Info.plist (Datei 3) befindet, die von XCode erstellt wurde.
  4. Kopieren Sie die Entitlements.plist (Datei 4) an eine andere Stelle als "Payload /".
  5. Stellen Sie sicher, dass "Bundle-ID" in Datei 1-4 identisch sein sollte.
  6. Verwenden Sie diese Entitlements.plist (Datei 4), um die IPA-Datei neu zu signieren.

Sie können es so zurücktreten

codesign -fs "iPhone Distribution: Your Company Name" --entitlements=/Users/SenTR/Downloads/codesign/Entitlements.plist /Users/SenTR/Downloads/codesign/Payload/Your_Project_name.app

Beispiel für Entitlements.plist

<?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>application-identifier</key>
        <string>PREFIX.yourappBundleID</string>
        <key>aps-environment</key>
        <string>production</string>
        <key>get-task-allow</key>
        <false/>
        <key>keychain-access-groups</key>
        <array>
            <string>PREFIX.yourappBundleID</string>
        </array>
    </dict>
</plist>

Wenn Sie Chinesisch sprechen, ist dies hilfreich.

http://hennry.com/2015/03/fail-to-resign-ipa-since-ios8/

0
Hennry

Diese Antworten sind gültige Dinge, die überprüft werden müssen, aber falls jemand anders sie ausprobiert hat, wie ich es getan habe und STILL Probleme hatte, stellen Sie sicher, dass Ihre App die richtige Plist-Einstellung enthält, mit der das exportierte Archiv korrekt komprimiert werden kann . Dies ist es, was uns gebissen hat, auch wenn wir alle obigen Schritte befolgt haben. Zu beachten ist auch, dass die Antwort, dass sichergestellt werden muss, dass die Liste der Websites gültige Bildlinks enthält, keinerlei Auswirkungen zu haben scheint, zumindest für uns, die XCode 6.3 zum Exportieren von Archiven verwendet. Es hat funktioniert/nicht funktioniert, unabhängig davon, ob diese Links korrekt sind. Es ist natürlich eine gute Idee, diese Informationen korrekt zu haben. Ein weiterer interessanter Hinweis ist, dass wenn wir mit XCode 5 exportiert haben, die IPAs IMMER im richtigen Format vorliegen (siehe verknüpften SO Artikel oben); XCode 6+ scheint nun wählerisch zu sein.

0
stonedauwg

Eine weitere mögliche Ursache für dieses Installationsproblem ist eine Inkongruenz zwischen dem Projekt und dem Bereitstellungsprofil (besonders wahrscheinlich bei automatisierten oder anderen Befehlszeilen-Builds). Bei den Bundle-IDs wird zwischen Groß- und Kleinschreibung unterschieden. Wenn die App-Bundle-ID im Bereitstellungsprofil beispielsweise com.example.MyApp Lautet und die Projektkonfiguration und/oder Info.plist com.Example.Myapp Verwendet, schlägt Xcode 7.1 mit einem Codesignaturfehler fehl oder greift auf a zurück Allgemeines Bereitstellungsprofil (eines mit der * Bundle-ID, die möglicherweise selbst ein Problem darstellt), aber der Befehl xcodebuild wird erfolgreich ausgeführt. Jenkins wird zum Beispiel auch den fälschlicherweise signierten Build auf Hockeyapp hochladen. Der Build wird auf Client-Geräte heruntergeladen, aber aufgrund der Nichtübereinstimmung zwischen Groß- und Kleinschreibung nicht installiert.

Deshalb,

Fix 0

Überprüfen Sie, ob die Anwendungspaket-ID im Projekt und auf dem Apple Entwicklerportal.

Die einfachste Möglichkeit, dieses spezielle Problem zu vermeiden, besteht darin, in den Paket-IDs immer Kleinbuchstaben zu verwenden. Das Kopieren der Bundle-ID von Apple Entwicklerportal und das Einfügen in die Projekterstellungseinstellungen (PRODUCT_BUNDLE_IDENTIFIER) Hilft natürlich auch.

Obwohl ich ein Problem mit einem Unternehmenskonto hatte, ist es möglicherweise nicht spezifisch für diese Art der Verteilung.

Fix 0´

Lesen Sie unbedingt den technischen Hinweis von Apple mit der Bezeichnung Fehlerbehebung bei Installationsfehlern für iOS .

0
Leon Deriglazov

Mein Problem wurde behoben, indem alle erstellten Dateien entfernt und anschließend vollständig neu erstellt wurden.

0
Mike