Wie ein Bündel in Haupt-Projekt von xcode 4.1
[UPDATE 03/04/2015]
Die Frage ist nun 4 Jahre alt, und gilt für eine bestimmte version von XCode, die ich jetzt angegeben, in der Betreffzeile.
Ich suchte eine Menge für dieses argument, aber ich konnte nicht finden eine Lösung, ich habe sogar post auf stackoverflow, die ich aber bald gelöscht die Frage, weil der sehr wenig Zugang.
Jetzt versuche ich es erneut.
Habe ich mir einen Arbeitsplatz mit zwei unterschiedlichen Projekten A und B.
B hat zwei Ziele, eine, erstellen einer statischen Bibliothek Blib.eine, und eine, die ein bundle zu bauen, B.-bundle. Alle von Ihnen erhalten, gebaut in der abgeleiteten Verzeichnis.
In Projekt A kann ich problemlos hinzufügen der statischen library in den build-Phasen. Aber ich kann nicht einen Weg finden, zählen für das bundle. B.-bundle ist nicht sichtbar von "copy resource" im A.
Daher muss ich manuell hinzufügen, mit allem was dazu gehört.
Ich dachte auch über ein Skript, aber ich möchte dies als allerletzte option.
Hat jemand eine Lösung dafür ? Hab ich was verpasst ?
Dank
- Ich habe auch versucht zu zählen das bundle direkt in Projekt B, aber es funktioniert nicht
- Ich kann nicht glauben, dass niemand auf dieses problem. Ich öffne mal ein ticket an den support von Apple, dass ich bald post mit der Antwort.
- warte noch auf die ticket-Antwort von Apple...niemand scheint zu wissen, die Antwort auf diese Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach langen Ermittlungen kam es bis es gibt keine einfache Möglichkeit, dies zu tun. Die B.-bundle ist niemals sichtbar, zu Einem Projekt, und es gibt keine Einstellungen in workspace zu ändern.
An dieser Stelle gibt es drei Lösungen:
Der hinzugefügte Ordner wird angezeigt, wie blau, sobald in Ihrem Projekt enthalten A.
Das ist es, ich persönlich benutze das script, weil bei dieser Lösung Weg unabhängig davon, ob Sie standard xcode Referenzvariable wie BUILT_PRODUCTS_DIR und so weiter, und das shell-Skript ist nur ein cp -r-f
[UPDATE 03/04/2015]
Möchte ich darauf hinweisen, dass die Frage jetzt 4 Jahre alt. Damals gab es nicht viele "offizielle" - Optionen zur Verfügung. Ich Sprach sogar mit Apple-Tech-Support, der die vorgeschlagene Lösung 3, da die einzige verfügbare Lösung. Es ist natürlich sehr wahrscheinlich, dass die Dinge sind jetzt geändert, und es gibt eine viel bessere Lösung. Nur zu sprechen, ich mag auch hinzufügen, dass die drei oben genannten sind keine "hacks" sondern "Lösungen", die vielleicht technisch veraltet, aber kann man Sie noch heute. Ich beabsichtige einen "hack" als..."hack", was bedeutet, dass es wahrscheinlich nicht gehen, um Arbeit in späteren software-Version.
cp -R -f $BUILT_PRODUCTS_DIR/MyBundle.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
und es funktioniert Prima.-L
option, wenn Sie diecp
- Befehl, um sicherzustellen, dass die symbolischen links gefolgt wird. Andernfalls, wenn Sie versuchen, archivieren Sie Ihre binären Sie die Validierung fehl und Sie Ihre *.bundle-Ressource nicht verfügbar *.app-Datei. Beispiel:cp -R -L -f $BUILT_PRODUCTS_DIR/resource.bundle $BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/
Hier ist, wie ich es Tat.
Drag-and-drop
B.bundle
von Projekt B → Produkte → B. Bündel in die Copy Bundle Resources build-phase der app in Project Ein (wählen Sie den Gruppen Erstellen Optionen wenn Sie danach gefragt werden). Diese fügenB.bundle
im Stammverzeichnis Ihres Projekts Eine Gliederung. Sie können verschieben Sie Sie in den Frameworks Verzeichnis der NäheBlib.a
wenn es Euch lieber ist.Wählen Sie
B.bundle
und überprüfen Sie seine Lage in der Identität und Geben rechten panel (Utilities-Bereich). Standardmäßig wählt Xcode Relativ zum Projekt. Das ist falsch, wählen Sie Relativ zu Bauen, Produkte statt.Den Pfad zu
B.bundle
sieht jetzt so etwas wie../../../../../../../../Projects/MyApp/B.bundle
. Dies ist nicht das, was Sie wollen, aber Sie können leicht beheben. ÖffnenProjectA.xcodeproj/project.pbxproj
in einem Texteditor, suchen Sie nach diesem Pfad und lösche alles, außer fürB.bundle
. Ihreproject.pbxproj
sollte wie folgt Aussehen:Speichern Sie Ihre
project.pbxproj
- Datei. Xcode wird automatisch laden Sie Ihre Projekt und Ihre app aufbauen sollte just fine.Nach der Suche für eine lange Zeit und nicht, viele Male, ich fand diese Ressource, das war ein absolut tolles tutorial zum erstellen von Statischen Bibliotheken und die include-bundles, die in Ihrem Haupt-Projekt oder auch für die Verteilung von 3rd-party-Entwickler, die beanspruchen kann, ist Ihre Bibliothek.
Absolut empfehlenswert:
https://github.com/jverkoey/iOS-Framework
In Projekt A, ist das Produkt von Projekt B eine Abhängigkeit in Ihrem Schema die Build-Aktion? Ich denke, Sie haben vielleicht, um diese Abhängigkeit (manchmal deaktivieren der automatischen dependency discovery option ist am besten) für die es sich zu zeigen und für das kopieren in ein anderes Ziel. Ich glaube, das ist, weil es nicht wirklich existiert (wie eine Bild-Ressource-Datei), bis es gebaut ist und Xcode benötigt um sicherzustellen, dass es gebaut, bevor die Arbeit mit einem anderen Ziel.
Als Xcode 5.1.1 ich war in der Lage, per drag-and-drop B. ein Paket aus dem Projekt-Navigator, um die Copy Bundle Resources Liste der zum Projekt Eine Build-Phasen. Ich nehme an, die Erstellung B.-bundle-Ziel ist nicht ein Problem.
Generic iOS Device
. Dieser Schritt ist erforderlich, um eine nicht-simulator-Referenz..bundle
um das andere Projekt istCopy Bundle Resources
..bundle
imProject navigator
des anderen Projekts, und ändern Sie seineLocation
zuRelative to Build Products