我的 theos 调整在添加自定义 dylib 文件后停止工作

问题描述 投票:0回答:3

我使用 Theos 创建了一个简单的调整,将黄色 UIView 添加到应用程序窗口(没什么特别的),并且效果完美。然后我制作了一个 dylib 文件(称为 AlertLib),其中包含一个类(也称为 AlertLib),并使用一种方法:显示一个简单的

UIAlertView
。我将 AlertLib.dylib 复制到 /opt/theos/lib 文件夹,并将 AlertLib.h 复制到 /opt/theos/include 文件夹。

我的 Makefile 看起来是这样的:

export ARCHS = armv7 arm64
export TARGET = iphone:clang:latest:8.0

include $(THEOS)/makefiles/common.mk

TWEAK_NAME = YellowSquare
YellowSquare_FILES = Tweak.xm
YellowSquare_FRAMEWORKS = UIKit Foundation
YellowSquare_LDFLAGS = -lAlertLib

include $(THEOS_MAKE_PATH)/tweak.mk

after-install::
    install.exec "killall -9 SpringBoard"

Tweak.xm 文件看起来是这样的:

#import "AlertLib.h"

%hook AppDelegate

- (void) applicationDidBecomeActive:(UIApplication *) application
{
    static dispatch_once_t once;
    dispatch_once(&once, ^{

        UIView *yellowSquareView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
        yellowSquareView.backgroundColor = [UIColor yellowColor];

        UILabel *tweakLabel = [[UILabel alloc] initWithFrame:yellowSquareView.bounds];
        tweakLabel.backgroundColor = [UIColor clearColor];
        tweakLabel.text = @"TWEAK";
        tweakLabel.font = [UIFont systemFontOfSize:25];
        tweakLabel.textAlignment = NSTextAlignmentCenter;
        [yellowSquareView addSubview:tweakLabel];

        UIWindow *window = [UIApplication sharedApplication].keyWindow;
        yellowSquareView.center = window.center;
        [window addSubview:yellowSquareView];

        [[AlertLib sharedInstance] showAlert];
    });

    %orig;
}

%end

之后我编译了该调整,并将其安装到设备上,没有错误。但是,现在调整不起作用,即应用程序窗口上没有添加黄色视图,也没有显示警报。如何正确地嵌入自定义 dylib 文件进行调整?

ios jailbreak theos tweak
3个回答
0
投票

从外观来看,我的赌注是

AlertLib
未安装在设备上。如果“不工作”意味着应用程序崩溃,就会出现这种情况。
如果可能的话,我想请求“NOT WORKING”的详细定义和编译的dylib。


0
投票

我通过将自定义库作为子项目添加到我的调整中解决了我的问题。 我在调整的根目录中运行命令

/opt/theos/bin/nic.pl
,并从列表中选择 library。它被自动添加为子项目。然后我将所需的文件添加到我的库中,并且它起作用了。


0
投票

我有完全相同的问题。如果能解决这个问题就好了,这样我们仍然可以有两个不同的包。一份用于库,一份用于调整。

© www.soinside.com 2019 - 2024. All rights reserved.