iOS越狱:简单的警报没有显示在“应用程序完成启动”中



我是越狱调整开发的新手。现在我只想在第一次加载springboard时收到警报对话框。

Tweak.mx

%hook Springboard
-(void)applicationDidFinishLaunching:(id)application {
    %orig;
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Welcome" message:@"Hello akash " delegate:nil cancelButtonTitle:@"Thanx" otherButtonTitles:nil];
    [alert show];
    [alert release]
  }
%end

生成文件

include theos/makefiles/common.mk
ARCHS = armv7 armv7s arm64
test_FRAMEWORKS= UIKit
TWEAK_NAME = test
test_FILES = Tweak.xm
include $(THEOS_MAKE_PATH)/tweak.mk
after-install::
    install.exec "killall -9 SpringBoard"

所以在这里我可以正确编译这个调整,并且我的iPhone也得到了恢复。所以此时我应该收到这个警报,但我在屏幕上没有任何内容。我错过了什么步骤

我正在使用iPhone 5s ios 7.1.2

编辑

我可以看到控制台输出,其中记录在错误下方

<Error>: MS:Error: dlopen(/Library/MobileSubstrate/DynamicLibraries/test.dylib, 9): no suitable image found.  Did find:
        /Library/MobileSubstrate/DynamicLibraries/test.dylib: no matching architecture in universal wrapper

然后我还使用 file test.dylib 看到它的文件类型

test.dylib: Mach-O universal binary with 2 architectures
test.dylib (for architecture armv7):    Mach-O dynamically linked shared library arm
test.dylib (for architecture armv7s):   Mach-O dynamically linked shared library arm

这意味着,我没有得到arm64 architecture这就是为什么它在我的iPhone 5s上失败,因为它64bit,谁能指出如何做到这一点?

最后我找到了解决方案

只需要把ARCHS = armv7 armv7s arm64放在前面 include theos/makefiles/common.mk


所以现在我的制作文件

ARCHS = armv7 armv7s arm64 
include theos/makefiles/common.mk

test_FRAMEWORKS= UIKit
TWEAK_NAME = test
test_FILES = Tweak.xm
include $(THEOS_MAKE_PATH)/tweak.mk
after-install::
    install.exec "killall -9 SpringBoard"
我相信

你钩错了函数?您正在寻找的功能是

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

最新更新