是否可以在ios中获取已安装的应用程序

Posted

技术标签:

【中文标题】是否可以在ios中获取已安装的应用程序【英文标题】:Is it possible to get installed apps in ios 【发布时间】:2018-03-06 07:48:28 【问题描述】:

是否可以在 ios 11 中以编程方式获取正在运行/已安装的应用程序列表。如果有人知道答案,请帮助我。我搜索了许多网站以寻找答案,大多数网站显示这是不可能的。请帮助我

【问题讨论】:

“他们中的大多数都表明这是不可能的” - 你想再听到同样的答案吗? Apple 不会允许...如果您使用任何私人/第三方库,那么请忘记 App Store! 那么第三方启动器应用程序在 iphone 中是如何工作的??????@luk2302 【参考方案1】:

好的,您无法获得所有应用程序,但您可以通过不同的方式完成您的任务。 App Store 上有一个名为 Carat 的应用程序,其中列出了消耗电池的应用程序。这是该应用程序的 GitHub 链接

Carat

也许对你有帮助

【讨论】:

【参考方案2】:

您可以使用 AppList 库来获取所有已安装应用程序的列表。 它使用私有框架,因此它也只能越狱。查看https://github.com/rpetrich/AppList。

您还可以阅读 /Applications 文件夹。所有已安装的应用程序都在其中可用。您需要使用 NSFileManager 列出 /Applications 中的目录:

NSArray *appFolderContents = [[NSFileManager defaultManager] directoryContentsAtPath:@"/Applications"];

【讨论】:

Applications 文件夹仅包含系统应用程序,因此您不会在此处找到有关从 App Store 下载的应用程序的任何信息。 Store App 的二进制文件存储在/var/mobile/Containers/Bundles,相关数据存储在/var/mobile/Containers/Data 如果您无法获取已安装应用程序的列表,您也可以尝试以下代码。这里我使用了私有框架,但它不是越狱设备。#include Class LSApplicationWorkspace_class= objc_getClass("LSApplicationWorkspace"); SEL 选择器=NSSelectorFromString(@"defaultWorkspace"); NSObject* 工作区 = [LSApplicationWorkspace_class performSelector:selector]; SEL selectorALL = NSSelectorFromString(@"allApplications"); NSLog(@"apps: %@", [workspace performSelector:selectorALL]);愿这段代码对你有所帮助:) 但苹果从 iOS 11 开始严格禁止。@Swati Gautam 如果我将 info.plist 中的 5000 个应用程序列入白名单并使用“canopenurl”检查应用程序是否已安装。有什么办法可以说服苹果???

以上是关于是否可以在ios中获取已安装的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

iOS 用户已安装应用列表 || XAMARI 表格

iOS 数据保护不适用于已安装的应用程序

在 iOS 应用中从 Firebase 获取已发送推送通知的历史记录

后台获取 iOS - 已终止的应用程序

branch.io:无法从 javascript 检测已安装的应用程序

如何在ios中获取已发送的电子邮件