Получить список установленных приложений на iPhone - PullRequest
12 голосов
/ 06 января 2011

Есть ли способ (некоторые API), чтобы получить список установленных приложений на устройстве iPhone.

При поиске похожих вопросов я нашел кое-что, связанное с url registration, но я думаю, что долженбыть некоторым API для этого, так как я не хочу ничего делать с приложением, я просто хочу список.

Ответы [ 5 ]

17 голосов
/ 06 января 2011

Нет, приложения находятся в «песочнице», а принятые Apple API не содержат ничего, что позволило бы вам это сделать.

Однако вы можете проверить, установлено ли определенное приложение:

  • если известно, что приложение обрабатывает URL определенного типа
  • с помощью [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"thisapp://foo"]

Список приложений и схем URL можно получить по адресу здесь .

4 голосов
/ 27 августа 2012

Для взломанных устройств вы можете использовать следующий фрагмент кода:

-(void)appInstalledList
{
 static NSString* const path = @"/private/var/mobile/Library/Caches/com.apple.mobile.installation.plist";

NSDictionary *cacheDict = nil;
BOOL isDir = NO;
if ([[NSFileManager defaultManager] fileExistsAtPath: path isDirectory: &isDir] && !isDir) 
{
    cacheDict = [NSDictionary dictionaryWithContentsOfFile: path];

    NSDictionary *system = [cacheDict objectForKey: @"System"]; // First check all system (jailbroken) apps
    for (NSString *key in system)
    {
        NSLog(@"%@",key);
    }
    NSDictionary *user = [cacheDict objectForKey: @"User"]; // Then all the user (App Store /var/mobile/Applications) apps

    for (NSString *key in user)
    {
        NSLog(@"%@",key);
    }
    return;
}
NSLog(@"can not find installed app plist");                   
}
3 голосов
/ 12 мая 2014

для устройств без джейлбрейка, мы можем использовать сторонний фреймворк, который называется " ihaspp ", также он бесплатный и одобрен Apple. Также они дали хорошую документацию, как интегрировать и как использовать. Может быть, это будет полезно для вас. Удачи !!

https://github.com/danielamitay/iHasApp

2 голосов
/ 12 ноября 2012

Ну, не уверен, было ли это доступно назад, когда был дан последний ответ или нет (до iOS 6) Кроме того, это требует много времени, но все же просто: Зайдите в настройки> Gen.> Использование. Первая категория, которая используется по крайней мере прямо сейчас, - это Хранилище.

Будет показан неполный список приложений. В нижней части этого частичного списка находится кнопка с надписью «показать все приложения». Нажмите на него, и вам придется переходить от экрана к экрану и делать снимки экрана (кнопка быстрой блокировки и кнопка «домой» делают снимок экрана). Я делаю это сейчас, и у меня есть сотни приложений на моем iPhone. Так что это займет у меня некоторое время. Но, по крайней мере, в конце процесса у меня будут изображения всех моих приложений.

1 голос
/ 20 октября 2016

Вы можете сделать это, используя следующее:

 Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
 SEL selector = NSSelectorFromString(@"defaultWorkspace");

 NSObject* workspace = [LSApplicationWorkspace_class performSelector:selector];

 SEL selectorALL = NSSelectorFromString(@"allApplications");

 NSMutableArray *Allapps = [workspace performSelector:selectorALL];

 NSLog(@"apps: %@", Allapps);

А затем, получив доступ к каждому элементу и разделив его, вы можете получить имя вашего приложения и даже идентификатор пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...