前段时间朋友做一个ASO优化的项目,找我完成几个功能:

  • 获取用户的App列表
  • 我们的App保持在后台一直运行
  • 判断唯一设备ID,如果用户删除App再安装,变更IDFA等都能正确判断是同一台设备。

经过调研,最终以上问题都解决了,将解决方法记录下来:

获取用户App列表的方法

有两种解决方式,选合适的,必要时配合使用

1. 使用苹果的私有类:LSApplicationWorkspace相关类

该方法能获取到用户已安装的所有App的AppId,bundleId,应用名称等比较全的信息。

限制条件:不能判断App的运行情况,IOS7以上系统

2. 遍历进程

遍历进程列表,不管App是运行状态还是挂起状态,能获取到进程名称、已打开时长等信息。

限制条件:

  1. 进程名称无法与AppId,bundleId等关联起来。

  2. 由于是获取的进程列表,那么没在运行的App就无法获取到信息了。


作者 侯振永
写于2015 年 8月 22日