まず、このアプリは App Store に登録する必要はありません。
私は、次の行に沿って何かがうまくいくはずだと考えています:
mach_port_t *p;
void *uikit = dlopen(UIKITPATH, RTLD_LAZY);
int (*SBSSpringBoardServerPort)() =
dlsym(uikit, "SBSSpringBoardServerPort");
p = (mach_port_t *)SBSSpringBoardServerPort();
dlclose(uikit);
void *sbserv = dlopen(SBSERVPATH, RTLD_LAZY);
int (*setAPMode)(mach_port_t* port, const char* appID, BOOL suspended, void* unknown, void* unknown2) =
dlsym(sbserv, "SBSLaunchApplicationWithIdentifier");
setAPMode(p, "com.apple.weather", NO, nil, nil);
dlclose(sbserv);
ただし、exc_bad_access を取得しています。これは、認証トークンが必要であることが原因である可能性があります。ただし、間違っている可能性があります。
あるいは、私は以下を使用しようとしています:
Class $SBApplicationController=objc_getClass("SBApplicationController");
NSLog(@"[$SBApplicationController sharedInstance], %@", [$SBApplicationController sharedInstance]);
悲しいことに、出力は null です。アプリケーション内でこれを行うことはできないと思います。
何か案は?これは私を夢中にさせています - ありがとう!