2016-07-29 17 views
19

Ich habe eine Menge von Frameworks in meiner App. App funktioniert gut in Adhoc/Enterprise-Version. Nur wenn ich mit dem App Store für Testflug Prüfung einreichen bekomme ich diesen Fehler E-Mail von Apple:Wie Debuggen "Ungültiges Bundle" Fehler, die nur nach dem Senden an App Store

Liebe Entwickler,

Wir haben entdeckt, ein oder mehrere Probleme mit Ihrer letzten Lieferung für „Name My App hier“ . Zum Verarbeiten Ihrer Lieferung müssen die folgenden Probleme behoben werden:

Ungültiges Bundle - Eine oder mehrere dynamische Bibliotheken, auf die von Ihrer App verwiesen wird, sind nicht im Dylib-Suchpfad vorhanden.

Sobald diese Probleme behoben wurden, können Sie die korrigierte Binärdatei erneut bereitstellen.

Grüße,

Der App Store Team

gibt es keine hier spezifische Informationen. Wie kann ich es debuggen?

+0

http://StackOverflow.com/a/33904053/341994 – matt

Antwort

17

Ich habe eine Antwort von Apple Developer Technical Support, die besagt, dass es ein Fehler auf der Seite von Apple ist. dies ist die vorgeschlagene Abhilfe, unter dem nicht für mich arbeiten:

dieses Problem zu diagnostizieren, sollten Sie die IPA exportieren Sie der App Store von Xcode senden. Da es sich bei IPAs um Zip-Dateien handelt, können Sie sie mit einem Rechtsklick dekomprimieren und sagen: Öffnen mit> Archiv Utility. Sie sollten Ihr Hauptprogramm innerhalb der entpackten Ordnerstruktur und führen otool in der Befehlszeile, um zu sehen, die Bibliothek Liste: otool -L

Die Liste der Pfade, die Sie soll, was Sie in Ihren IPA erhalten passen zu finden. Alle Ihre Bibliotheken sollten mit @rpath beginnen. Ein einfacher Vergleich von allem in dieser Liste mit den entpackten IPA-Ordnern sollte zeigen, was fehlt.

Sobald Sie wissen, was fehlt, gehen Sie zu Ihrem Xcode-Build-Phasen-Setup. Es sollte eine Build-Phase für Dateien kopieren oder Frameworks einbetten, die die fehlende Bibliothek enthält - Sie sollten nur die Bibliothek der Liste hinzufügen. Wenn Sie keine dieser Build-Phasen sehen, können Sie neu erstellen, indem Sie eine neue Build-Phase Copy Files hinzufügen, das Ziel den Frameworks zuweisen und die Bibliothek zur Liste hinzufügen, , um sicherzustellen, dass Code Sign On Copy aktiviert ist .

Wenn Sie in Ihrem Hauptprogramm, stellen Sie sicher zu tun die gleiche Suche auf anderen Binärdateien sie eine watchOS App oder einem iOS-App-Erweiterung kann, wie fehlt nichts finden.

Wenn Sie, dass alle die Rahmenbedingungen in dieser Aufbauphase finden, einen Blick auf die Embedded-Binaries Abschnitt Ihrer App Seite Allgemein des Ziels, nehmen Sie bitte und lassen Sie mich wissen, wenn Sie mehrere Ebenen von ../ nächsten sehen zu der Binärdatei, die Sie gefunden haben, fehlt.

Bitte lassen Sie mich wissen, wenn es für Sie funktioniert!

+0

was hat dann für Sie funktioniert? – Sana

11

Ich habe das gleiche Problem beim Hochladen einer App mit Watch-Unterstützung in den App Store aufgetreten.

Ich konnte es mit dem Hinweis aus der ersten Antwort lösen, mit otool -L, um die Binärdatei aus dem Ipa oder XCarchive zu analysieren. Allerdings war das Problem nicht mit meinen Frameworks (um @rpath), sondern mit einer schnellen lib. Ich habe festgestellt, dass libswiftWatchKit.dylib im Framework-Ordner fehlte.

Die Lösung, die für mich funktionierte, war so einfach wie EMBEDDED_CONTENT_CONTAINS_SWIFT=YES in den Build-Einstellungen der Watch-App (oder der Watch-App-Erweiterung, aber nicht beides) einzustellen. Danach wurden alle erforderlichen Swift-Bibliotheken korrekt in den Watch-App-Pfad im Archiv kopiert und der Upload zum App-Store funktionierte ordnungsgemäß.

Anscheinend funktioniert die Watch-App und Upload-Pässe, wenn Sie die erforderlichen schnellen Bibliotheken nur im Ordner der Haupt-App bereitstellen.

+2

Ich habe das gleiche Problem, aber die Einstellung "EMBEDDED_CONTENT_CONTAINS_SWIFT" hat nichts für mich getan. Ich habe hier gepostet: http://stackoverflow.com/questions/39481174/xcode-8-or-cocoapods-not-embding-enough-swift-dylibs-for-watch-appex – xaphod

+3

In XCode 8 hat es sich geändert in 'ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES' –

1

Mein Problem: Ich hatte den gleichen Fehler mit eingebetteten Frameworks.

  1. Das App-Projekt hat Projekt Benutzerdefinierte Rahmen
  2. Innerhalb des Projektes Individuellen Framework ist ein weiteres Projekt Individuellen Rahmen

Die App an den Simulator gebaut und auf Geräte ohne Probleme aber nicht auf den Apple-Test, "Ungültiges Bundle" wird zurückgegeben.

Ich inspizierte das Paket genau wie Taha von Tech Support gesagt worden war und alles war vorhanden und korrekt!

Meine Lösung: Ich strukturierte das Projekt so um, dass die zwei kundenspezifischen Rahmen Seite an Seite sitzen und man nicht mehr innerhalb der anderen eingebettet wird.

Dies scheint ein Apple-Validierungsproblem zu sein, da alles auf Geräten und dem Simulator funktioniert, aber die Arbeit war geradlinig.

1

In meinem Fall in den Buildeinstellungen, dies wurde behoben, wenn ich folgendes auf die Build-Einstellungen für die Bibliothek hinzugefügt:

DYLIB_INSTALL_NAME_BASE = @rpath 

war Warnung ein Linker Der Hinweis: ‚Yourlibrary einen Installations Namen hat Anfang mit „/“, aber es ist nicht von der angegebenen SDK‘ist

2

nach dem Hinzufügen des benutzerdefinierten Swift Rahmen mein Projekt, das ich diese E-Mail bekam, nachdem die App iTunes verbinden hochladen.

Ich habe diese E-Mail von iTunes Store,

Ungültige Bundle - Eine oder mehr dynamischen Bibliotheken, die von Ihrer Anwendung referenziert wird, ist in dem dylib Suchpfad nicht vorhanden.

Das Update ist für dieses Problem einfach,

Schritt 1: Ihre Individuelle Rahmen wird hinzugefügt Embedded Binaries in Registerkarte Allgemein Ihrer Ziel Stellen Sie sicher. enter image description here

Schritt 2: Unter Buildeinstellungen,

Set Always Embed Swift Standard Libraries = Yes für Ihr Hauptprojekt Ziel.

und Set Always Embed Swift Standard Libraries = No für Ihre benutzerdefinierten Rahmen Ziel.

Dies löste mein Problem und ich konnte binäre auf iTunes Connect hochladen.

Ref

0

hatte ich das gleiche Problem, es war auf einem Rahmen nicht in der App-Bundle im Frameworks Unterordner vorhanden ist.

Ich habe es behoben, indem ich eine Build-Phase Copy Fields hinzugefügt und dort die fehlende .framework-Datei hinzugefügt habe.

0

So kämpfte ich für zwei Tage. Es stellte sich heraus, dass ich UITests im Archiv nach dem Build für das Schema, das ich archivierte, überprüft hatte.

Nachdem Sie das Archiv deaktiviert, archiviert, validiert (obwohl es validiert wurde, bevor es immer übergeben wurde) und "In AppStore hochladen" habe ich keine E-Mail von Apple erhalten, die mich über Invalid Swift Support informiert. Stattdessen bekam ich die E-Mail, dass es verarbeitet wurde und es gut ist zu gehen!