【发布时间】:2015-01-14 04:50:15
【问题描述】:
如何在 iOS 8 中以编程方式获取 iPhone 设备上所有已安装应用程序的列表。
如果有人知道使用私有 API(但设备未越狱)的解决方案,那么它很好。
我知道可以使用 iTunes Search API,但它只提供从 iTunes 安装的应用程序。我需要设备上的所有应用程序,无论是来自 iTunes 还是用户开发或系统应用程序。
【问题讨论】:
标签: ios ios8 iphone-privateapi
如何在 iOS 8 中以编程方式获取 iPhone 设备上所有已安装应用程序的列表。
如果有人知道使用私有 API(但设备未越狱)的解决方案,那么它很好。
我知道可以使用 iTunes Search API,但它只提供从 iTunes 安装的应用程序。我需要设备上的所有应用程序,无论是来自 iTunes 还是用户开发或系统应用程序。
【问题讨论】:
标签: ios ios8 iphone-privateapi
试试这个。 它有效,我已经测试过。
#include <objc/runtime.h>
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
NSLog(@"apps: %@", [workspace performSelector:@selector(allApplications)]);
【讨论】:
我为 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]);
【讨论】: