2013-04-14 11 views
7

Я сделал полностью функциональную настройку с теосом, и мне нужно использовать файл изображения в нем, код для получения изображения правильный (проверен на Xcode). , но изображение не включено в окончательный файл DEB.Как включить файлы ресурсов в Theos makefile?

и у меня есть этот 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 

Но когда я пытаюсь скомпилировать я получаю:

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

, что я могу сделать, чтобы включить его ??

(Извините за плохой синтаксис, спрашивая у iphone).

+0

только кто знаком с системой Теос строительства будет способный помочь. С точки зрения make это означает, что один из включенных make-файлов обрабатывает содержимое переменной MyTweak_FILES в качестве исходных файлов, которые необходимо скомпилировать. Либо есть другая переменная, которая должна использоваться для файлов изображений, либо make-файлы не знают, как обращаться с файлами PNG. – MadScientist

ответ

6

Это не то, как вы включаете ресурсы с помощью theos. Переменная MyTweak_FILES должна включать только файлы, которые могут быть скомпилированы. Сделать файл обрабатывает ресурсы по-разному.

Чтобы включить ресурсы, вам необходимо создать пакет следующим образом.

1) Создайте папку под названием Ресурсы в каталоге tweak.xm.

2) Поместите все ваши файлы ресурсов (все ваши PNG) в эту папку.

3) Добавьте следующую информацию в свой макияжем файл

BUNDLE_NAME = your_bundle_identifier 

your_bundle_identifier_INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries 

include $(THEOS)/makefiles/bundle.mk 

4) Определить свой пакет следующим образом поверх файла tweak.xm.

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

5) Теперь вы можете инициализировать пакет и использовать изображения в пределах вашей подстройки следующим образом:

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

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

UIImage *myImage = [UIImage imageWithContentsOfFile:imagePath] 

В вышеуказанных шагах заменить your_bundle_identifier с щипками идентификатора пакета, который был бы в файл управления. (например: com.yourdomain.tweak_name)

Также замените your_image_name на имя изображения, которое вы хотите использовать.

Вы можете в значительной степени использовать любые ресурсы (например: звуковые файлы) указанным выше способом.

0

В дополнении к отправленному ответу, это обычная практика, чтобы поместить пакеты в «Поддержке/Library/Application /», а не «/ Library/MobileSubstrate/DynamicLibraries /»

Смежные вопросы