2013-04-14 5 views
7

나는 완벽하게 기능을 조정했다. 나는 이미지 파일 을 사용해야한다. 이미지를 얻는 코드는 정확하다. (Xcode에서 테스트 됨). 이미지는 최종 DEB 파일에 포함되어 있지 않습니다.Theos 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. 

내가 그것을 포함 할 수 있습니까 ??

(잘못된 구문으로 인해 유감스럽게도 아이폰에서 요청).

+0

사람 만이 될 것입니다 도와 줄 수있어. make 관점에서 볼 때 이것은 포함 된 makefile 중 하나가'MyTweak_FILES' 변수의 내용을 컴파일 할 소스 파일로 취급한다는 것을 의미합니다. 이미지 파일에 사용될 다른 변수가 있거나 그렇지 않으면 makefile은 PNG 파일을 처리하는 방법을 모릅니다. – MadScientist

답변

6

이것은 당신이 theos를 사용하는 리소스를 포함하는 방식이 아닙니다. MyTweak_FILES 변수는 컴파일 할 수있는 파일 만 포함해야합니다. 파일이 리소스를 다르게 처리하도록합니다.

리소스를 포함 시키려면 다음과 같이 번들을 만들어야합니다.

1) tweak.xm 디렉토리에 Resources라는 폴더를 만듭니다.

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

,에 번들 "/ 라이브러리/Application Support /"보다는를 배치하는 것이 일반적이다 "/ 라이브러리/MobileSubstrate/DynamicLibraries /"

THEOS 구축 시스템에 대해 잘 알고