2012-09-19 2 views
8

Sto cercando di aggiungere framework SDL e SDL_ttf alla mia applicazione e l'ho fatto nel modo usuale: li ho aggiunti nella sezione "Collega i binari con le librerie" e ho aggiunto una fase di copia dei file che li copia nella directory Frameworks. Questo crea un pacchetto di app con framework integrati. Tuttavia, quando si esegue l'applicazione, ottengo questo errore:Incorporamento di framework in un pacchetto Mac App.

dyld: Library not loaded: @rpath/SDL_ttf.framework/Versions/A/SDL_ttf Referenced from: /Users/matthew.davies/Library/Developer/Xcode/DerivedData/MacHub-ambfqujqxbxyiqapaoctvsucpdeu/Build/Products/Release/MacHub.app/Contents/MacOS/MacHub Reason: image not found

Non sono sicuro che altro fare in modo che l'applicazione può trovare i quadri pur essendo incorporato nel suo bundle.

Qualche idea per favore?

risposta

5

Ho scoperto il motivo per cui in un commento su una pagina web. Avevo bisogno di impostare l'impostazione di generazione "Percorsi di ricerca percorso" su "@loader_path /../ Frameworks" e sono stati trovati i framework.

Perché i framework non vengono ricercati automaticamente nella directory Framework di un pacchetto di app è un mistero completo per me? Stai ascoltando Apple? :)

+1

Se costruisci le cose come consigliato da Apple, finirà per cercare '@loader_path /../ Frameworks/SDL.framework' in primo luogo, quindi non ne avrai bisogno sul percorso di ricerca. Questa è una soluzione più sicura, poiché garantisce che la tua app non verrà collegata alla versione errata del framework. Se non fai le cose come loro raccomandano ... beh, allora devi imparare tutti i tipi di dettagli di basso livello. (Quello che probabilmente vorresti qui è 'install_name_tool', ma le probabilità che tu lo scopra senza sapere in anticipo sono magre ...) – abarnert

+1

Il vero problema qui è che Apple ha una buona documentazione per l'uso molto semplice di" iniziare " di framework e per i dettagli di basso livello di come tutto funziona, ma non molto tra ... – abarnert

+0

Nel mio progetto, l'eseguibile stava rilevando sia la/Library/Frameworks che le copie di Contents/Frameworks dell'app framework, e stava avvertendo che la selezione della libreria sarebbe indefinita (infatti, SDL_Mixer non funzionava in questa configurazione). Questo suggerimento risolve anche questo problema. – Justin