获取iPhone上安装的应用程序列表

有没有一种方法(一些API)来获取iPhone设备上安装的应用程序列表。

在search类似的问题时,我发现了一些与url registration有关的事情,但是我认为必须有一些API来做到这一点,因为我不想用应用程序做任何事情,我只想要列表。

不,应用程序是沙盒,苹果认可的API不包括任何可以让你这样做的东西。

但是,您可以testing是否安装了某个应用程序:

  • 如果该应用程序已知处理某种types的URL
  • 通过使用[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"thisapp://foo"]

您可以从这里获得应用程序和URLscheme的列表。

对于越狱的设备,您可以使用下面的代码片断:

 -(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之前)这也是一个时间密集,但很简单:进入设置>创造>使用。 至less现在使用的第一类是Storage。

它会显示一部分应用程序。 在这部分列表的底部是一个button,显示“显示所有应用程序”。 点击,你将不得不逐个屏幕,并采取截图(快速lockingbutton和主页button截图)。 我现在正在做这个,我的iPhone上有数百个应用程序。 所以这需要一段时间。 但至less在这个过程结束时,我将拥有所有应用程序的图像。

你可以通过使用以下方法来实现这一点:

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

然后通过访问每个元素并分割它,你可以得到你的应用程序名称,甚至是Bundle标识符。