IOS应用信息抓取
2015-09-30 14:56
756 查看
本文档主要介绍怎么在真机中获取应用列表,并获得应用的相关核心信息,如版本号、bundleID、appleID、开发的sdk、上次打开时间。。。
由于能力有限,目前只能获取这些信息,还无法获取更多有意思的信息。
学习IOS底层Runtime机制,包含类操作和消息分发;
了解什么是私有API什么是公有API;
在AppList中开启消息分发机制。
2.分析每一个应用
由于能力有限,目前只能获取这些信息,还无法获取更多有意思的信息。
一、准备工作
使用最新的XCode创建应用AppList;学习IOS底层Runtime机制,包含类操作和消息分发;
了解什么是私有API什么是公有API;
在AppList中开启消息分发机制。
二、核心代码
1.抓取应用列表Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");// 获取核心类LSApplicationWorkspace NSObject *workspace = objc_msgSend(LSApplicationWorkspace_class, sel_registerName("defaultWorkspace")); // 初始化 NSArray *array = objc_msgSend(workspace, sel_registerName("allApplications"));// 获取应用列表
2.分析每一个应用
_localizedName = objc_msgSend(applicationProxy, sel_registerName("localizedName"));// 应用名 _resourcesDirectoryURL = objc_msgSend(applicationProxy, sel_registerName("sourceAppIdentifier"));// 应用文件存放的地址 _applicationIdentifier = objc_msgSend(applicationProxy, sel_registerName("applicationIdentifier"));// 应用的Bundle identifier _sdkVersion = objc_msgSend(applicationProxy, sel_registerName("sdkVersion"));// 开发应用的sdk版本号 _minimumSystemVersion = objc_msgSend(applicationProxy, sel_registerName("minimumSystemVersion"));// 应用最低支持的版本 _shortVersionString = objc_msgSend(applicationProxy, sel_registerName("shortVersionString"));// 当前应用版本号 _appleID = [NSString stringWithFormat:@"%@", objc_msgSend(applicationProxy, sel_registerName("itemID"))]; _openDate = objc_msgSend(applicationProxy, sel_registerName("registeredDate"));// 上次应用打开时间 NSString *applicationType = objc_msgSend(applicationProxy, sel_registerName("applicationType"));// 应用分类 if ([@"System" isEqualToString:applicationType]) { _applicationType = ApplicationTypeSystem; } else if ([@"User" isEqualToString:applicationType]) { _applicationType = ApplicationTypeUser; } else { _applicationType = ApplicationTypeOther; } // 获取 Info.plist NSString *infoPlistStr = [NSString stringWithFormat:@"%@/Info.plist", _resourcesDirectoryURL]; NSDictionary *infoPlistDict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:infoPlistStr]];
三、效果图
源代码下载
http://download.csdn.net/detail/y550918116j/9149953相关文章推荐
- ios软件开发 json格式字符串转字典,字典转json格式字符串
- iOS8中使用CoreLocation定位
- iOS 自定义tabBar
- iOS工程通用模块介绍 二
- 几个iOS工程通用模块介绍
- iOS 分段选择控件 开关按钮 滑杆
- 30个iOS常用动画
- iOS自学
- iOS AutoLayout自动布局中级开发教程(3)-等宽等高等中心
- iOS开发日记30-Autolayout
- iOS-动画效果(图片左右滑动 添加动画效果)
- iOS开发常用网址
- iOS ARC注释和错误的解决方法在使用
- iOS AutoLayout自动布局中级开发教程(7)-底部顶部baseLine基线对齐
- 萌货猫头鹰登录界面动画iOS实现分析
- iOS AutoLayout自动布局中级开发教程(2)-初识autolayout
- ios-动画组
- iOS AutoLayout自动布局中级开发教程(6)-淘宝客户端iPhone 6/6 Plus 设计·适配方案
- iOS开发之身份证号码校验
- iOS AutoLayout自动布局中级开发教程(3)-等宽等高等中心