Theos调整:helloworld警告框没有出现

时间:2013-08-08 06:55:15

标签: jailbreak tweak theos

我跟着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

这是Makefile

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

1 个答案:

答案 0 :(得分:1)

我明白了,* .plist应该是
{Filter = {Bundles =(“com.apple.springboard”); }; }

感谢@ H2CO3,我在其他地方找到你的评论 但在我成功完成了helloworld的调整之后 我使用fopen

挂钩MSHookFunction

然后我遇到链接错误

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);
}