7

私はtheosで完全に機能する微調整を行い、その中で画像ファイルを使用する必要があります.画像を取得するためのコードは正しいです(Xcodeでテスト済み). しかし、イメージは最終的な DEB ファイルには含まれていません。

そして、私はこのメイクファイルを持っています:

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からの質問で、構文が悪くて申し訳ありません)。

4

2 に答える 2

11

MyTweak_FILES 変数には、コンパイル可能なファイルのみを含める必要があります。Make file はリソースを異なる方法で処理します。

リソースを含めるには、次のようにバンドルを作成する必要があります。

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 を使用するイメージの名前に置き換えます。

上記の方法で、ほぼすべてのリソース (サウンド ファイルなど) を使用できます。

于 2013-05-27T07:20:31.287 に答える