Domanda

C'è un modo semplice di ottenere Three20 v1.1 al lavoro sotto xCode 4? Ho seguito i passaggi su http://three20.info/article/2011-03- 10-Xcode4-Support ma che sembra essere per il master. Io uso v1.1 come io uso il TTLauncher.

Il progetto si basa bene con una corporatura normale, e funziona perfetto su un iPhone. Ma quando voglio creare l'archivio (per l'IPA per la distribuzione) poi ho 18 errori e 8 avvisi.

La prima è:

../scripts/Protect.command: line 23: cd: /Users/XXX/Library/Developer/Xcode/DerivedData/iDoms-cmyivarwxpbvqdfnyclqdrikrtmw/ArchiveIntermediates/iDoms/BuildProductsPath/Release-iphoneos/../three20/Three20UICommon: No such file or directory

La maggior parte delle altre sono 'Nessun file o directory' sul es .: #import "Three20Core/TTGlobalCoreLocale.h "

o 'sommerso (primo utilizzo della funzione)' che viene dal 'tale problema file o directory presumo'.

Nel mio 'percorsi di ricerca di intestazione' ho:

$(BUILT_PRODUCTS_DIR)/../three20
$(BUILT_PRODUCTS_DIR)/../../three20
../../three20/Build/Products/three20
/usr/include/libxml2

Qualsiasi aiuto sarebbe molto apprezzato!

È stato utile?

Soluzione

Si dovrebbe verificare questa domanda StackOverflow .

Ho riprodotto la risposta accettata di seguito:

Quindi sembra che il modo più semplice invecchiare Xcode 3.2 progetti per il lavoro con Xcode 4 è quello di fare quanto segue:

Go in Xcode 4 di preferenze (Cmd +,). Selezionare la scheda "Locations". Dove dice "costruire Locations", selezionare il discesa e scegliere "Luogo di costruzione prodotti in posizioni specificate dal obiettivi" Scriverò una three20.info articolo entrare in maggiori dettagli su questo.

Altri suggerimenti

Giusto per aggiungere alla risposta di Colin: è possibile utilizzare progetti dipendenti di Xcode sono dotate di utilizzare Three20, anche se il sito Three20 dice che non è "ufficialmente supportato":

  1. Nel vostro spazio di lavoro, fare clic destro su uno spazio vuoto nella vostra navigazione di progetto. Selezionare "Aggiungi file 'Area di lavoro', e selezionare il progetto Three20 (three20/src/Three20/Three20.xcodeproj) Questo è il solo progetto, occorre aggiungere:.. Non è necessario aggiungere manualmente i Three20 sottoprogetti

  2. Selezionare il progetto nel navigatore, andare a costruire Fasi, aperto "binario di collegamento con le librerie", cliccare sul "+" nell'angolo in basso a sinistra, e aggiungere i Three20 librerie: libThree20.a, libThree20Core.a, libThree20Network.a, libThree20Style.a, libThree20UI.a, libThree20UICommon.a e libThree20Navigator.a. Questo farà sì che Xcode per costruire Three20 quando si genera il progetto.

  3. Aggiungi ${BUILD_DIR}/three20 al percorso includere come da risposta di Colin:. Andare in impostazioni di generazione, fare doppio clic su "header Percorsi di ricerca", e aggiungere ${BUILD_DIR}/three20 (mostrerà come build/three20 quando si chiude la finestra di dialogo)

  4. Aggiungi three20/src/Three20.bundle alle risorse.

  5. E 'probabilmente anche una buona idea aggiungere le bandiere linker -ObjC e -all_load se non l'avete già fatto (la stessa finestra di dialogo, impostando "Altre Bandiere Linker").

I passi di cui sopra sono abbastanza buono per la compilazione del codice. Per rendere "Archivio" lavoro troppo, sarà necessario:

  1. Aggiungi $(BUILT_PRODUCTS_DIR)/../three20 e $(BUILT_PRODUCTS_DIR)/../../three20 alla intestazione impostazione percorsi di ricerca. Se non si ottengono errori di compilazione che i Three20 intestazioni non possono essere trovati.

  2. Per tutti Three20 progetti (quindi non solo il progetto di primo livello), vanno impostazioni di generazione e impostare "Skip Install" per SI. Se non lo fai, il progetto si baserà, ma non sarà in grado di creare un'IPA.

Assicurarsi che il nome del prodotto (selezionare il bersaglio, andare su Impostazioni del torso, quindi l'impostazione "Nome prodotto") non contiene spazi, altrimenti l'archiviazione non funzionerà.

Infine, se stai ricevendo errori quali ld: library not found for -lThree20 e si utilizza una configurazione di generazione personalizzata (ad esempio AdHoc), assicurarsi di aggiungere la stessa configurazione di generazione a ciascuno dei progetti Three20 troppo (appena duplicare la configurazione di rilascio) .

Aggiungi questi due percorsi per i vostri percorsi di ricerca di intestazione nelle impostazioni di generazione per il vostro obiettivo:

"$ (BUILD_DIR) / Three20" "$ (BUILD_DIR) /../ Three20"

è necessaria la prima voce per regolare costruisce e la seconda voce è necessaria per gli archivi.

E 'così facile.


Tra l'altro, per creare un file nella vostra home directory con un elenco di tutte le variabili d'ambiente di Xcode per environement del bersaglio, aggiungere il seguente fase di costruzione Esegui script per il tuo target con i contenuti: ENV> ~ / xcode-environment.sh

Si noti che in questo caso, se il progetto non sta rendendo attraverso la fase di compilazione del processo di generazione, e lo script Run viene dopo, non sarà possibile ottenere eseguito lo script, in modo da mettere in primo luogo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top