美文网首页
iOS 11系统LSApplicationWorkspace获

iOS 11系统LSApplicationWorkspace获

作者: 小呆一哥 | 来源:发表于2017-08-09 13:13 被阅读695次

    随着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获

          本文链接:https://www.haomeiwen.com/subject/zvgfrxtx.html