2013-04-14 19 views
7

Ho realizzato un tweak completamente funzionale con theos e ho bisogno di usare un file immagine in esso, il codice per ottenere l'immagine è corretta (testato su Xcode). ma l'immagine non è inclusa nel file DEB finale.Come includere i file di risorse nel makefile di Theos?

e ho questo makefile:

SDKVERSION=6.0 
include theos/makefiles/common.mk 
include theos/makefiles/tweak.mk 

TWEAK_NAME = MyTweak 
MyTweak_FRAMEWORKS = Foundation CoreGraphics UIKit 
MyTweak_FILES = Tweak.xm image.png 

include $(THEOS_MAKE_PATH)/tweak.mk 

Ma quando provo a compilare ottengo:

No rule to make target `obj/image.png.o', needed by `obj/MyTweak.dylib'. Stop. 

cosa posso fare per includerlo ??

(Mi dispiace per la sintassi sbagliata, chiedendo da iphone).

+0

Solo chi ha familiarità con il sistema di Theos costruire sarà in grado di aiutare. Da una prospettiva make, questo significa che uno di quelli inclusi makefile tratta il contenuto della variabile 'MyTweak_FILES' come file sorgente da compilare. O c'è qualche altra variabile che dovrebbe essere usata per i file di immagine, altrimenti i makefile non sanno come gestire i file PNG. – MadScientist

risposta

6

Questo non è il modo in cui si includono le risorse utilizzando theos. La variabile MyTweak_FILES dovrebbe includere solo i file che possono essere compilati. Rendere le risorse di gestione dei file in modo diverso.

Per includere le risorse è necessario creare un pacchetto come segue.

1) Creare una cartella denominata Risorse nella directory tweak.xm.

2) Inserire tutti i file di risorse (tutti i file PNG) in quella cartella.

3) Aggiungere il seguente informazioni al file di make

BUNDLE_NAME = your_bundle_identifier 

your_bundle_identifier_INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries 

include $(THEOS)/makefiles/bundle.mk 

4) Definire il vostro pacco come segue sulla parte superiore del file tweak.xm.

#define kBundlePath @"/Library/MobileSubstrate/DynamicLibraries/your_bundle_identifier.bundle" 

5) A questo punto è possibile inizializzare il bundle e utilizzare le immagini all'interno del vostro Tweak come segue:

NSBundle *bundle = [[[NSBundle alloc] initWithPath:kBundlePath] autorelease]; 

NSString *imagePath = [bundle pathForResource:@"your_image_name" ofType:@"png"]; 

UIImage *myImage = [UIImage imageWithContentsOfFile:imagePath] 

nei passaggi precedenti sostituire your_bundle_identifier con le modifiche identificatore pacchetto che sarebbe in il file di controllo. (es: com.tuodominio.tweak_name)

Sostituire anche your_image_name con il nome dell'immagine che si desidera utilizzare.

È possibile utilizzare praticamente tutte le risorse (ad es .: file audio) nel modo precedente.

0

Oltre alla risposta postato, è pratica comune per posizionare fasci di "Supporto/Libreria/Application /" piuttosto che "/ Library/MobileSubstrate/DynamicLibraries /"

Problemi correlati