利用的私有库检测正在安装的app

分为两步:第一,通过placeholderApplications获得所有的正在安装的app的信息

第二,遍历正在安装的app的信息,根据名称获得你想检测的app是否正在安装

一旦使用了私有的接口你的app便不能再上架了

利用私有的库MobileCoreServices检测正在安装的应用

    NSMutableArray *app = [NSMutableArray array];
//获得私有的类
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
NSObject *workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
//获得所有的正在安装的app,得到的是个数组
NSArray *apps = [workspace performSelector:@selector(placeholderApplications)];
Class LSApplicationProxy_class = objc_getClass("LSApplicationProxy");
//遍历数组,根据app的名称判断哪个app正在安装
for (int i = ; i < apps.count; i++) {
NSObject *temp = apps[i];
if ([temp isKindOfClass:LSApplicationProxy_class]) {
NSString *appName = [temp performSelector:NSSelectorFromString(@"localizedName")];
BOOL b = [temp performSelector:NSSelectorFromString(@"isPlaceholder")];
NSLog(@"名称:%@++++%d",appName,b);
}
}

最新文章

  1. 函数mod(a,m)
  2. 《理解 ES6》阅读整理:函数(Functions)(七)Block-Level Functions
  3. VS2013安装oepncv2.4.10 以及opencv 3.0.0
  4. 圆内接三角形(X神的代码玩的真好)
  5. 几个系统调用分析 glibc中的malloc调用和共享内存原理
  6. 网站网页生成.shtml访问无法显示
  7. 转载 Memcached BinaryProtocol incr指令内存泄露的bug
  8. HDU 1558 Segment set (并查集+线段非规范相交)
  9. Python 读写文件和file对象(转)
  10. UINavigationController切换controller动画设置
  11. [string]Regular Expression Matching
  12. ssl通关的概念(一个)
  13. (64位oracle使用32位的PLSQL)安装64位的oracle数据库软件,使用32位的PLSQL Developer连接方法
  14. LeetCode OJ 4. Median of Two Sorted Arrays
  15. MongoDB 基本命令
  16. Qt之添加图标
  17. input复选框操作的部分高频率使用代码
  18. sql替换
  19. git体验
  20. python面向对象之类的组合

热门文章

  1. CYQ.Data V5 从入门到放弃ORM系列:教程 - MAction类使用
  2. 保护ASP.NET 应用免受 CSRF 攻击
  3. 任意多边形切割/裁剪(附C#代码实现)
  4. iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
  5. 《Entity Framework 6 Recipes》中文翻译系列 目录篇 -持续更新
  6. innerHTML和innerText的区别
  7. 使用google 语言 api 来实现整个网站的翻译
  8. 网站使用https协议
  9. 读取xml数据装配到字典中之应用场景
  10. &ldquo;前.NET Core时代&rdquo;如何实现跨平台代码重用 &mdash;&mdash;程序集重用