Ios 在MobileSubrate调整中使用捆绑资源

Ios 在MobileSubrate调整中使用捆绑资源,ios,cydia,theos,cydia-substrate,Ios,Cydia,Theos,Cydia Substrate,我正在尝试使用plist文件来保存一些数据。 但该应用程序在启动时崩溃 Tweak.xm: #define hackBundlePath @"/Library/MobileSubstrate/DynamicLibraries/testBundle.bundle" NSMutableDictionary *modsDict = [[NSMutableDictionary alloc] init]; %ctor { NSBundle *bundle = [[NSBundle alloc

我正在尝试使用plist文件来保存一些数据。
但该应用程序在启动时崩溃

Tweak.xm:

#define hackBundlePath @"/Library/MobileSubstrate/DynamicLibraries/testBundle.bundle"

NSMutableDictionary *modsDict = [[NSMutableDictionary alloc] init];

%ctor {

    NSBundle *bundle = [[NSBundle alloc] initWithPath:hackBundlePath];
    NSString *path = [bundle pathForResource:@"HackData" ofType:@"plist"];

    NSFileManager *fileManager = [NSFileManager defaultManager];
    if ([fileManager fileExistsAtPath: path]) {
        modsDict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
    }
    else {
        [modsDict setObject:FALSE forKey:@"test"];
        [modsDict setObject:FALSE forKey:@"test1"];
        [modsDict setObject:FALSE forKey:@"test2"];

        [modsDict writeToFile:[bundle bundlePath] atomically: TRUE];

    }

}
生成文件:

include theos/makefiles/common.mk

TWEAK_NAME = test
test_FILES = Tweak.xm ModsTableViewController.mm
test_FRAMEWORKS = Foundation UIKit CoreFoundation

include $(THEOS_MAKE_PATH)/tweak.mk

BUNDLE_NAME = testBundle
testBundle_INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries


include $(THEOS)/makefiles/bundle.mk

捆绑包是在正确的位置创建的,但在启动应用程序后,似乎没有创建plist文件。因此,我想我可以说问题应该出在
writeToFile
方法上,或者在它之前您试图向bundlepath写入一个plist,而不是给它一个文件名


[modsDict writeToFile:[[bundle bundlePath]stringByAppendingPathComponent:@“filename.plist”]原子性:是]

遗憾的是,虽然代码应该是
[modsDict writeToFile:path atomicaly:YES]
,但bundle仍然是空的。
writeToFile:atomicaly:
方法有一个返回值。请看看那个。我不能100%确定将
FALSE
传递到
setObject:forKey:
是否有效。