Для начала - это приложение не должно входить в 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]);
К сожалению, вывод равен нулю, так что я думаю, что это не может быть сделано в приложении.
Есть идеи? Это сводит меня с ума - спасибо!