Я делаю собственное (Enterprise) приложение. Я хочу программно удалить другие установленные приложения с устройства iOS. Я успешно получил информацию об установленных приложениях (например, имя, bundleId, версию, значок и т. д.), используя методы частной платформы Apple. Подскажите, пожалуйста, как мне это сделать (например, удалить приложение). Спасибо.
Как удалить приложение iOS программно, используя частную структуру для устройства без джейлбрейка
Ответы (3)
Вот решение (без джейлбрейка, без сбоев), но оно не работает каждый раз. Иногда не удалось удалить приложение и вернуть NO
.
NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/MobileCoreServices.framework"];
BOOL success = [b load];
if(success)
{
Class LSApplicationWorkspace = NSClassFromString(@"LSApplicationWorkspace");
id si = [LSApplicationWorkspace valueForKey:@"defaultWorkspace"];
SEL selector=NSSelectorFromString(@"uninstallApplication:withOptions:");
BOOL what=[si performSelector:selector withObject:@"Bundle_ID" withObject:nil];
}
person
Blind Ninja
schedule
12.08.2015
Это невозможно с устройством без взлома, даже с частными API.
person
Rukshan Marapana
schedule
12.08.2015
@sleepwalkersfx Я нашел один метод в частных заголовках .... То есть - (BOOL) uninstallApplication: (id) arg1 withOptions: (id) arg2; Это в рабочем пространстве LSApplication. Он принимает два аргумента. Я передал первый идентификатор пакета аргументов, а второй аргумент был нулевым. Этот метод успешно удалил приложение, но после этого произошел сбой.
- person iOS_Learner; 12.08.2015
Вам понадобится решение MDM, которое дает компании довольно большую власть над зарегистрированными устройствами. Используя программное обеспечение iOS, нет никакого способа. И я просто предполагаю, что ваше предприятие не подпустит к себе взломанные телефоны!
person
gnasher729
schedule
12.08.2015
SUDO
Ключевое слово в Linux и Unix. Это означаетSuper User DO
. @BadalShah Да. - person Blind Ninja   schedule 12.08.2015NO
. - person Blind Ninja   schedule 12.08.2015