如何在iOS 8中以编程方式获取iPhone设备上所有已安装应用程序的列表。
如果有人通过使用私有API(但设备非越狱)知道解决方案,那么它很好。
我知道可以使用iTunes Search API,但它只提供从iTunes安装的应用程序。我需要设备上的所有应用程序,无论是来自iTunes,还是用户开发的应用程序或系统应用程序。
答案 0 :(得分:21)
试试这个。 它有效,我已经过测试。
#include <objc/runtime.h>
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
NSLog(@"apps: %@", [workspace performSelector:@selector(allApplications)]);
答案 1 :(得分:6)
我重构了Xcode 7.3的上面代码。它在iOS9上完美运行。
#include <objc/runtime.h>
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
SEL selector=NSSelectorFromString(@"defaultWorkspace");
NSObject* workspace = [LSApplicationWorkspace_class performSelector:selector];
SEL selectorALL = NSSelectorFromString(@"allApplications");
NSLog(@"apps: %@", [workspace performSelector:selectorALL]);