2010-05-31 17 views
5

Ho creato un framework Cocoa funzionante che desidero ridistribuire. Il problema è comunque, non funzionerà al di fuori di Xcode. Ho letto qualcosa su @executable_path/../Frameworks, che non ho incluso, perché io non so dove metterlo:/Creazione di un framework cacao

Perciò corro la mia applicazione in Xcode usando la variabile DYLD_FRAMEWORK_PATH che funziona bene, ma solo in Xcode - se cerco di eseguire sul proprio si blocca subito e dice IMAGE NOT FOUND.

Sono sicuro che @executable_path/../Frameworks è quello che manca, ma non so dove metterlo.

Qualcuno potrebbe darmi una mano per favore? :)

Grazie

+1

Cosa intendi con _running_ il tuo framework? I framework solitamente non hanno codice eseguibile direttamente. Inoltre, hai letto la Guida alla Programmazione Quadro? http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183-SW1 Forse anche solo sfogliarlo ti darà le tue risposte. – zneak

+0

ovviamente l'ho letto. Il framework viene importato nella mia app, ma si blocca all'avvio. La guida parla anche dell'impostazione di '@executable_path /../ Frameworks ', ma non so dove sia. – Pripyat

+0

Ho cercato di impostare il parametro "directory di installazione" nelle impostazioni del progetto, ma non riesce ancora. Dice ancora 'dyld: Libreria non caricata:' e 'Immagine non trovata' – Pripyat

risposta

3

Ecco come io di solito gestire le cose:

  1. Nel progetto Xcode del quadro, impostare la directory di installazione di @rpath

  2. Aggiungere il quadro alla dell'applicazione Progetto Xcode. Aggiungere una fase di costruzione di copia file, selezionare Frameworks nel popup Destinazione, e garantire si aggiunge il vostro quadro in modo che verrà copiato nella directory Frameworks dell'applicazione quando viene costruito.

  3. Infine, nelle impostazioni del progetto, aggiungere @loader_path /../ Frameworks a Percorsi di ricerca percorso.

+0

Penso che non sia soddisfatto di @executable_path - Ho caricato uno screenshot del registro di esecuzione qui: http://web.me.com/david.schiefer/error.tiff – Pripyat

+0

Se si utilizza @rpath, non è necessario per @executable_path, quindi non sono sicuro del motivo per cui visualizzi questo errore. – sbooth

0

Si sta effettivamente copiando il framework nel pacchetto di applicazioni? Cerca la cartella denominata MacOS che è ciò che contiene il file binario. Ci dovrebbe essere un'altra cartella allo stesso livello chiamata Frameworks e dovrebbe avere il framework al suo interno.

Se non è presente, è necessario creare una fase di creazione dei file di copia per l'applicazione che copia il framework nella cartella Frameworks.

+0

quando si fa clic su "Mostra contenuto", vedo un Framework (ha il mio framework in esso), Risorse e MacOS. – Pripyat

+0

e sì ha il mio framework in esso, ma non funziona ancora – Pripyat

+0

OK, la prossima cosa è scoprire dove l'applicazione pensa che dovrebbe essere. Apri una sessione terminale, vai nella directory MacOS ed esegui 'otool -L' sul binario. – JeremyP

Problemi correlati