Получить список установленных приложений на iPhone

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

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

5 ответов


нет, приложения изолированы, и принятые Apple API не включают ничего, что позволило бы вам это сделать.

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

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

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


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

-(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");                   
}

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

https://github.com/danielamitay/iHasApp


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

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


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

 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);

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