2012-04-20 5 views
5

Ho un progetto Xcode per un'app mac che contiene un altro progetto per un'app helper per avviare l'app principale all'accesso. C'è un modo per basare l'identificatore del bundle dell'app helper sull'app principale con una variabile di progetto come ${PRODUCT_NAME} ma qualcosa come ${ROOT_PRODUCT_IDENTIFIER}?Xcode: c'è un modo per ottenere l'identificatore del bundle di un progetto genitore?

Così identificatore pacchetto dell'app principale sarebbe:

com.mydomain.app

e identificatore pacchetto dell'app aiutante sarebbe:

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

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

Il mio obiettivo con questo è per creare una t veramente facile o uso generico lancio al login helper app che qualsiasi applicazione Mac possono utilizzare, ho ottenuto che funziona in questo repo ma richiede un paio di valori da modificare: https://github.com/kgn/LaunchAtLoginHelper

risposta

1

temo la variabile che sei cercare non esiste, dare un'occhiata here o here

Ma posso pensare a una soluzione creando la propria variabile di ambiente, che non è difficile. Per ottenere ciò che desideri, crea uno script di compilazione per il tuo progetto principale che estrae l'identificatore e lo salva in una variabile di ambiente.

Vai all'obiettivo del progetto principale e fai clic su Aggiungi fase di costruzione -> Aggiungi script di esecuzione. Nella casella di shell che appare, digitare questo:

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

Passare al vostro aiutante del progetto e riferimento $ (ROOT_PRODUCT_IDENTIFIER) nel suo plist/costruire impostazioni.

Ricordare di aggiungere il progetto principale come dipendenza per quest'ultimo, in modo che la variabile sia sempre impostata in base al tempo necessario.

Problemi correlati