2017-11-27 1 views
5

Im Rahmen unseres Unity-Build-Prozesses ziehen und löschen wir ein Verzeichnis von C-Quelldateien, die von der Unity-IDE generiert werden, in unser iOS-XCode-Projekt. Wir wollen, dass XCode "Gruppen erstellen" für die Dateien erstellt, da die Header-Dateien vom Compiler nicht erkannt werden, wenn "Ordnerverweise erstellen" verwendet wird.Ist es möglich, ein Verzeichnis von Quelldateien per Skript in ein Xcode-Projekt zu kompilieren?

Ich frage mich, ob es eine Möglichkeit gibt, dies zu skripten, so dass wir die Verzeichnisse nicht jedes Mal manuell in XCode ziehen müssen. Das Hinzufügen der Build-Phase "Copy Files" scheint nur dann zu funktionieren, wenn ich "Create folder references" wähle. Wenn ich "Gruppen erstellen" wähle, bleibt der Bereich "Dateien kopieren" leer. Ist das ein Fehler in XCode oder mache ich etwas falsch? Ich benutze XCode 9.1.

Ich weiß, Apple empfiehlt, ein Framework zu erstellen, anstatt in einem Verzeichnis der Quelldateien zu kopieren. Der Grund dafür ist, dass wir uns auf den Unity-Build-Prozess verlassen, der uns eine Menge C-Quelldateien liefert. Vielen Dank!

+0

Ich denke, diese berechtigte Frage ist. Wie auch immer, Down-Voting ohne Angabe von Gründen ist nicht sehr konstruktiv! –

+2

Vielleicht eine gültige Frage, aber ein bisschen eine unklare Frage. Möchten Sie Dateien zum Kompilieren hinzufügen? Oder sind diese Ressourcendateien oder beides. Es scheint so zu sein, als ob Dateien kompiliert werden müssten. Und willst du Xcode normalerweise anders als das verwenden (dh, füge beliebige Dateien außerhalb der Bandbreite dieser Drag & Drop-Sache hinzu, von der du sprichst?). Warum besteht ein solcher Bedarf (dh warum ändern sich die Dateien so sehr, dass Sie das brauchen würden?). Ich frage nur, weil es mir den Build-Prozess im Allgemeinen etwas verdächtig macht ... –

+0

Dies sind C-Quelldateien, die zur Kompilierzeit vorhanden sein müssen. Wir müssen unabhängig davon noch weitere Änderungen am XCode-Projekt vornehmen können. Diese C-Quelldateien ändern sich jedes Mal, wenn wir einen neuen Unity-Build erstellen. –

Antwort

0

Xcode macht es möglich, Skript Hinzufügen von Ressourcendateien B. Bilder in die Projektdatei über die Registerkarte "Build Phases". Dies funktioniert jedoch nicht für Quellcodedateien, die zum Zeitpunkt der Kompilierung erkannt werden müssen. Glücklicherweise gelang es mir, ein nettes, von der Community entwickeltes Python-Skript zu finden, das uns erlaubt, dies zu tun.

https://github.com/kronenthaler/mod-pbxproj

Mit diesem Skript wir alle möglichen Änderungen an der Projektdatei einschließlich Hinzufügen oder Löschen von Dateien machen.

Siehe diesen Link für eine vollständige Liste der verfügbaren Operationen:

https://github.com/kronenthaler/mod-pbxproj/wiki

1

In Xcode können Sie Ihren Build-Prozess auf dem Tab "Build Phases" verwalten, wenn Sie Ihr App-Ziel auswählen. Diese Tasks werden bei jedem Build Ihrer App ausgeführt, sofern in einigen Phasen nichts anderes festgelegt ist (z. B. können Sie eine Phase nur dann ausführen, wenn die App zum ersten Mal installiert wird).

Klicken Sie auf die Schaltfläche + und Sie können eine "Datei kopieren Phase" hinzufügen, die Ihre ausgewählten Dateien in die App kopiert. Wenn Sie die Dateien hinzufügen, können Sie auswählen, ob hinzugefügte Ordner Gruppen oder Ordnerverweise erstellen.

Sie können auch eine benutzerdefinierte "Run Script Phase" hinzufügen und schreiben Sie etwas Bash-Code, um zu tun, was auch immer Sie möchten, oder sogar ein externes Skript, das komplexere Arbeit ausführen wird.

+1

Das Hinzufügen einer "Copy Files" -Buildphase scheint nur zu funktionieren, wenn ich "Create folder references" wähle, aber Ordnerreferenzen sind für uns nicht nützlich, da der Compiler die Quelldateien anscheinend nicht erkennt, wenn sie sich in einem Ordner befinden eher als eine Gruppe. Wenn ich "Gruppen erstellen" wähle, bleibt der Bereich "Dateien kopieren" leer. Ist das ein Fehler in XCode? Ich benutze XCode 9.1. –

+1

In Bezug auf den Ansatz "Skriptphase ausführen" konnte ich ein Beispielskript in der Antwort auf diese Frage finden, aber es scheint nur zum Hinzufügen von Ressourcen wie Bildern oder Daten zu funktionieren. Können Sie ein Beispielskript bereitstellen, mit dem Quelldateien im xcode-Projekt zur Kompilierungszeit hinzugefügt werden? https://stackoverflow.com/questions/1371351/add-files-to-an-xcode-project-from-script –

+1

haben kein bestimmtes Beispiel, aber wenn es für Ressourcen funktioniert, sollte es relativ einfach zu machen sein Es handle sich um Arten von Dateien. Sie können einen leeren Referenzordner in Ihrem Xcode-Projekt erstellen und dann die Dateien im Build-Schritt mit Ihrem Skript kopieren. Eine wichtige Anmerkung - wenn Sie möchten, dass die kopierten Dateien kompiliert werden, müssen Sie diese Phase über die "Quellen kompilieren" positionieren (Sie können die Reihenfolge ändern, indem Sie die Phase ziehen). Dies gilt sowohl für das Kopieren als auch für das Ausführen von Script-Phasentypen – Artal

1

xcode-> Build Phases-> Klick Taste (+) -> Neue Dateien kopieren Phase/New Run Script Phase

enter image description here

enter image description here

+0

Können Sie diese Antwort näher erläutern? Mir ist bewusst, wie man ein Skript aufruft, aber nicht sicher ist, wie man das Skript so schreibt, dass Quelldateien zum Kompilieren in das Xcode-Projekt kopiert werden. Es scheint, dass rb-appscript von Xcode nicht mehr unterstützt wird. Vielleicht können Sie näher erläutern, welches Skript Sie vorstellten? –

+0

Ich habe bereits folgende Scripts hinzugefügt. , << bash "$ {BUILT_PRODUCTS_DIR}/$ {FRAMEWORKS_FOLDER_PATH} /Realm.framework/strip-frameworks.sh" >> –

+0

Dieses Skript dient zum Entfernen von Frameworks für das Realm-Framework und scheint für meine Frage zum Kopieren nicht relevant zu sein Quelldateien für die Kompilierung. –

Verwandte Themen