iOS 11系统LSApplicationWorkspace获取APP安装列表失效

随着iOS 11的即将发布,我们在iOS 11上进行了相关测试,发现苹果变动了相关的API。在iOS 11beta4和iOS 11beta5中测试发现,使用私有API中LSApplicationWorkspace获取已安装列表拿不到具体内容了,详情如下:

原核心代码:

/*首先获取 LSApplicationWorkspace 实例*/

Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");

NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];

NSArray*installedApps = [workspace performSelector:@selector(allApplications)];

返回的数组installedApps为已安装的应用LSApplicationProxy实例化对象,从而可以拿到应用的一些属性,比如包名、版本号、名称等等……

但是在iOS 11上进行了测试,发现上面代码不能返回正常所需已安装列表信息,似乎苹果对API进行了相关改动,用Xcode调试时候控制台输出如下信息:

[default] No results found for query: {(

<_LSBundleProxiesOfTypeQuery: 0x1c42210a0>

)}

显示查询不到任何结果。

目前在iOS 11上获取已安装列表暂时无进展,为此建立了一个QQ群,(546572794)iOS技术交流分享群,有兴趣的可以加群大家一起探讨下!

你可能感兴趣的:(iOS 11系统LSApplicationWorkspace获取APP安装列表失效)