Я разрабатываю твики для jailbroken iphone, iOS 7, и у меня есть проблема, которую я не могу решить какое-то время, можно закрыть все приложения в фоновом режиме непосредственно из Springboard, не открывая панель переключателя фона? Все настройки и исходные коды, которые я видел, например, Purge, Slide2Kill работают с панелью переключателей приложений, используя self для контроллера.Завершить одно или несколько приложений за пределами переключателя iOS 7 tweak
Я попытался следующие способы:
SBAppSliderController* switcherController = MSHookIvar<SBAppSliderController*>(self, "_switcherController");
//or
SBUIController *sharedUI = [objc_getClass("SBUIController") sharedInstance];
SBAppSliderController * switcherController = [sharedUI _appSliderController];
//tried this:
SBAppSliderController * switcherController = [sharedUI _switcherController];
//and
SBAppSliderController * switcherController = MSHookIvar<SBAppSliderController *>(sharedUI, "_switcherController");
закрыть все приложения, мне нужно позвонить _quitAppAtIndex со всем индексом приложения доступен
[switcherController _quitAppAtIndex:appIndex];
%hook SBAppSliderController
- (void)_quitAppAtIndex:(unsigned int)arg1
{
%log;
if (arg1 == 0) {
for (NSString *appID in [self applicationList]) {
if (![appID isEqualToString:@"com.apple.springboard"])
[self _quitAppAtIndex:[[self applicationList] indexOfObject:appID]];
}
}
else
%orig;
}
Каждый раз, когда я вызываю функцию я получаю следующее ошибка, даже если я хочу закрыть только одно приложение, и я называю его конкретным индексом:
: - [_quitAppAtIndex: 1] : * T Причина: исключение «NSInvalidArgumentException», причина: '* - [__ NSDictionaryM removeObjectForKey:]: ключ не может быть nil'
Что я делаю неправильно? любая помощь будет оценена
спасибо.