2012-04-20 4 views
5

Ich habe ein Xcode-Projekt für eine Mac-App, die ein anderes Projekt für eine Hilfsanwendung enthält, um die Haupt-App bei der Anmeldung zu starten. Gibt es eine Möglichkeit, die Bundle-ID der Hilfs-App von der Haupt-App mit einer Projektvariablen wie ${PRODUCT_NAME} aber etwas wie ${ROOT_PRODUCT_IDENTIFIER}?Xcode: Gibt es eine Möglichkeit, die Paketkennung eines übergeordneten Projekts zu erhalten?

So ist die Bundle-Bezeichner Haupt App wäre:

com.mydomain.app

und die Paket-ID Helfer App wäre:

${ROOT_PRODUCT_IDENTIFIER}.Helpercom.mydomain.app.Helper

http://f.cl.ly/items/263B370t2G3F2q202n3D/Screen%20Shot%202012-04-20%20at%201.23.18%20AM.png

Mein Ziel mit das ist es, ein wirklich einfaches t zu schaffen o use generic Start bei der Anmeldung Helfer app, dass jeder Mac App verwenden können, ich habe es in diesem Repo arbeiten, aber es erfordert ein paar Werte geändert werden: https://github.com/kgn/LaunchAtLoginHelper

Antwort

1

Ich fürchte, die Variable du bist Suchen nach gibt es nicht, schauen Sie here oder here

Aber ich kann mir eine Workaround vorstellen, indem Sie Ihre eigene Umgebungsvariable erstellen, die nicht schwierig ist. Um das zu erreichen, was Sie wollen, erstellen Sie ein Build-Skript für Ihr Hauptprojekt, das den Bezeichner extrahiert und in einer Umgebungsvariablen speichert.

Gehen Sie zum Ziel Ihres Hauptprojekts und klicken Sie auf Add Build Phase -> Add Run Script. In der Shell-Box, die erscheint, geben Sie diese in:

ROOT_PRODUCT_IDENTIFIER_PLIST=`/usr/libexec/PlistBuddy -c "Print :CFBundleIdentifier" $INFOPLIST_FILE` 
export ROOT_PRODUCT_IDENTIFIER=`eval echo $ROOT_PRODUCT_IDENTIFIER_PLIST` 

Jetzt ist Ihr Helfer des Projekts und Referenz $ gehen (ROOT_PRODUCT_IDENTIFIER) in seiner plist/Build-Einstellungen.

Denken Sie daran, Ihr Hauptprojekt als eine Abhängigkeit für das letztere hinzuzufügen, so dass die Variable immer nach der benötigten Zeit festgelegt wird.

Verwandte Themen