2014-11-26 6 views
15

Ich habe das gleiche Problem wie this guy, this guy und this guy (nota bene, ich bin mir eigentlich nicht sicher, ob sie alle Jungs sind, per se).Validierungsfehler: Das Paket enthält nicht erlaubte Datei 'Frameworks'

Sie haben alle ihre eigenen Lösungen gefunden, aber keiner von ihnen trifft auf mein Problem zu. Ich verwende Xcode 6.1 in meiner iOS 8 App mit einer enthaltenen Erweiterung. Die App und die Erweiterung basieren beide auf einem inkludierten Framework. Wenn ich versuche, die App an den Store zu senden, lautet die Validierungswarnung "ERROR ITMS-9000: Invalid bundle. The bundle at 'xxxxx.appex' contains disallowed file 'Frameworks'".

Ich kann nicht einmal eine Datei namens Frameworks finden. Das freigegebene Framework soll unter/Library/Frameworks gespeichert werden, dem von Apple empfohlenen Speicherort. Das Projekt verwendet auch Cocoapods, was mir als einzig möglicher Täter erscheint, da es Referenzen in seinen Konfigurationsdateien auf $ FRAMEWORK_PATH hat (obwohl der Build-Ordner keine Datei oder einen Ordner mit diesem Namen enthält).

+0

Haben Sie das gelöst? Ich habe genau das gleiche Problem. –

+0

Besser als die upvoted Antworten ist die Lösung hier: http://stackoverflow.com/questions/30361864/invalid-bundle-the-bundle-contains-disallowed-nested-bundles-contains-disallow – buildsucceeded

Antwort

2

Als ich damit fortfuhr, bemerkte ich, dass meine Share Extension eine "Embed Frameworks" Build Phase hatte, wobei das Destination auf das "Frameworks" Verzeichnis eingestellt war. Ich habe es in "Shared Frameworks" geändert und der Fehler ist verschwunden.

Es bleibt jedoch ein weiterer Fehler: "... enthält unzulässige verschachtelte Bündel". Ich dachte, dass dies eine Art Regenschirmfehlerwarnung als Folge des Originals war. Ich werde eine andere Frage für diesen öffnen.

9

OK für zukünftige Zuschauer hier ist das Update:

Wenn Sie Ihren eigenen iOS Rahmen schaffen (ich verwende Xcode 6.1), wenn Sie es das Endprodukt bauen enthält ein ‚Frameworks‘ -Ordner im Rahmen selbst bündeln. d. h. MyFramework.framework/Frameworks. Dies geschieht auch dann, wenn Sie keine Build-Phase für das Kopieren von Dateien/Einbetten von Frameworks angeben.

Was Sie tun müssen, ist in Ihr Framework-Bundle zu gehen, den leeren Frameworks-Ordner zu finden und ihn zu löschen. Dies sollte die Funktionalität Ihrer App in keiner Weise beeinträchtigen. Erstellen Sie anschließend Ihre App und überprüfen Sie, ob das eingebettete Framework wie geplant einen Frameworks-Ordner enthält.

Ihr Archiv sollte jetzt nicht den fehlerhaften Ordner enthalten und der Fehler sollte weg sein!

+0

Wie gehen Sie "in dich gehen Framework-Bundle, finde den leeren Frameworks-Ordner und lösche ihn "? Wo ist das Rahmenbündel? und wie man es öffnet? – WayneZhao

+0

Der Frameworks-Ordner ist überall dort, wo Sie ihn platzieren.Wenn Sie es erstellen, erscheint es unter 'Users/username/Library/Developer/Xcode/DerivedData/projectName/Build/Products/Debug-xxx /'. Ich bewege sie dann so, dass Xcode erkennt, dass sie existieren. Wenn Sie auf die Datei "myFramework.framework" doppelklicken (es ist wie ein Ordner), sehen Sie einen Frameworks-Ordner, der gelöscht werden muss. –

+0

Arbeitete für mich, aber ich muss herausfinden, wie man keine Carthage Build Frameworks mit Frameworks ... – Jeef

4

Ich habe die Build-Einstellungen geändert> Verpackung> Definiere Module, die in meiner Erweiterung auf JA gesetzt sind, und beobachte das App-Ziel. Funktioniert gut für mich.

+0

Xcode 7 Benutzer hier, dies arbeitete für mich nach dieser Art von Problem tauchte wieder aus Gründen, die die alten Antworten nicht berücksichtigt haben – CQM

4

In meinem Fall war die Lösung der folgende:

Try to create the script there 'problematic target' -> Build Phases' then click on + and select New Run Script Phase , the run script should go after all others. Insert there :

cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/" 
if [[ -d "Frameworks" ]]; then 
    rm -fr Frameworks 
fi 

Dann das Projekt reinigen und versuchen, ein Archiv erneut zu erstellen. Diese Antwort wurde auf die folgende Frage zu finden:

Ich hoffe, dass diese Ihnen helfen.

+0

Mein Fall, mit XCode 7.1.1 behebt das Skript das Problem nicht. Also musste ich cocoapods auf Version 0.39.0 beta3 downgraden und dann den Befehl "pod install" – andreacipriani

+0

A ausführen. Sollte ich beide Skripte dort behalten oder nur den letzten Teil? B. Sollte ich auch die Aktivierung der Option von zwei überprüfen (1. Umgebungsvariable anzeigen, 2. Skript nur installieren ausführen)? "$ {SRCROOT}/Pods/Target Support Files/Pods-Orsys WatchKit Erweiterung/Hülsen-Orsys WatchKit Extension-frameworks.sh" cd "$ {CONFIGURATION_BUILD_DIR}/$ {UNLOCALIZED_RESOURCES_FOLDER_PATH} /" if [[ -d "Frameworks"]]; dann rm -fr Frameworks fi –

+0

Ich habe gerade das Cocoapods Framework Embed-Skript deaktiviert, die gleichen Frameworks sind in der Haupt-App sowieso. – igraczech

Verwandte Themen