1

http://brandontreb.com/beginning-jailbroken-ios-development-building-and-deploymentに従って 調整を行いました。すべて問題ないようで、make package installは成功しまし
たが、iPhone が再起動したときに「helloworld」ボックスが表示されませんでした。これを解決する方法を知っている人はいますか?

私のxcodeは4.6で、sdk5.1がインストールされ
ています私のiPhoneはiOS6.1.2です

私はそれらを設定しました

export THEOS=/opt/theos/
export SDKVERSION=5.1
export THEOS_DEVICE_IP=192.168.1.101

これはメイクファイルです

export ARCHS=armv7
export TARGET=iphone:5.1
include $(THEOS)/makefiles/common.mk
helloworld_FRAMEWORKS = UIKit
TWEAK_NAME = helloworld
helloworld_FILES = Tweak.xm
include $(THEOS)/makefiles/tweak.mk

これが Tweak.xm です

#import <SpringBoard/SpringBoard.h>

%hook SpringBoard

-(void)applicationDidFinishLaunching:(id)application {
%orig;

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome"
    message:@"Hello world"
    delegate:nil
    cancelButtonTitle:@"123"
    otherButtonTitles:nil];
    [alert show];
    [alert release];
}

%end
4

1 に答える 1

1

*.plist は
{ Filter = { Bundles = ( "com.apple.springboard" );である必要があります。}; }

ありがとう@H2CO3、私はあなたのコメントを別の場所で見つけ
ましたが、helloworldの微調整に成功した後です。私は使用して
フックしますfopenMSHookFunction

そして、リンクエラーに遭遇しました

Making all for tweak hw...
 Preprocessing Tweak.xm...
 Compiling Tweak.xm...
 Linking tweak hw...
Undefined symbols for architecture armv7:
  "_MSHookFunction", referenced from:
      global constructors keyed to Tweak.xm.mmin Tweak.xm.51941273.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status
make[2]: *** [.theos/obj/hw.dylib.ba964c90.unsigned] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [hw.all.tweak.variables] Error 2

これはTweak.xmです

#import "substrate.h"

static FILE * (*s_orig_fopen) ( const char * filename, const char * mode );
static FILE * my_fopen ( const char * filename, const char * mode ){
    return s_orig_fopen(filename, mode);
}

static void entry(void)  __attribute__ ((constructor));
static void entry(void) {
    MSHookFunction(fopen, my_fopen, &s_orig_fopen);
}
于 2013-08-10T18:31:18.400 に答える