2013-10-25 5 views
5

Ich habe einen Arbeitsbereich, der mehrere Projekte enthält. Einige Projekte werden als Frameworks verpackt und dann gibt es ein Hauptprojekt, nämlich die iOS App selbst. Die Haupt-App verweist auf die Frameworks. Dies funktionierte in Xcode 4.6 beim Erstellen und Archivieren, aber es funktioniert nicht mehr in Xcode 5 aus verschiedenen Gründen, die mit Xcode 5 zu tun haben und verschiedene Build-Pfade verwenden. Ich habe die meisten dieser Probleme bearbeitet (hoffe ich), aber ich habe noch ein Problem.XCode 5 scheint InstallationBuildProductsLocation für Archiv zu löschen

Eines meiner Ziele für meine Framework-Projekte hat eine Zieleinrichtung, die nur eine .storyboard-Datei enthält - sie ist so eingestellt, dass sie diese eine Storyboard-Datei kompiliert. Ein regulärer Build scheint gut zu funktionieren, aber wenn ich ein Archiv für dieses spezifische Ziel anlege, wird der Ordner InstallationBuildProductsLocation, in dem die .bundle-Datei für das Storyboard erstellt wird, nach dem Abschluss des Ziels gelöscht. Die folgenden Befehle werden nach dem Protokoll ausgeführt:

log screenshot

Aber nach diesem erfolgreichen Abschluss der InstallationBuildProductsLocation ist nicht mehr da. Ich habe überprüft, dass es zunächst erstellt wird, indem Sie nach der Compile Sources-Build-Phase ein Run Script einfügen, das einen Fehler auslöst - wodurch das Archiv nicht vollständig wird und in diesem Fall das Verzeichnis und die .bundle-Datei intakt bleiben.

Kann mir jemand erklären, warum dies passiert und gibt es eine Möglichkeit, zu verhindern, dass Xcode 5 dieses Verzeichnis löscht? Ich denke, meine Alternative ist, das Paket an einen anderen Ort zu kopieren, bevor es gelöscht wird, damit ich es später verwenden kann, wenn ich es in ein Framework packe.

+0

Ich habe dieses Problem auch beim Erstellen einer statischen Bibliothek Framework für iOS. Hast du das jemals herausgefunden oder einen Workaround gefunden? – dar512

+0

Ich habe das Paket an einen "sicheren" Ort kopiert, bevor Xcode eine Chance hatte, es zu löschen. Habe dies in einem benutzerdefinierten Skript getan, das ich als Build-Phase hinzugefügt habe. – csheets

Antwort

1

Wenn Sie archivieren, befindet sich das Ergebnis (eine .xcarchive-Datei) in einem anderen Verzeichnis - ~/Library/Developer/Xcode/Archives - wo die Archive nach Datum gespeichert werden.

+0

ist es möglich, dieses Verhalten zu überschreiben? Oder zumindest, um den Befehl "Umzugsphase" in Protokolle/Konsole zu drucken? Ich versuche, Jenkins Xcode-Plugin arbeiten zu lassen, und bin dabei bis jetzt geblieben – 62mkv