Cycript
是Object-C++、ES6(JavaScript)、Java等语法的混合物
作用:可以用来探索、修改、调试正在运行的Mac/iOS App
官网:http://www.cycript.org/
手机设备安装Cycript
,即可在iPhone上调试运行中的APP
Cycript 的使用
调试某个应用app(注意:app一定是要在前台活跃的状态下才行)
终端命令
-
开启
:cycript -p进程ID 或 cycript -p 进程名称
(可以通过下方ps命令获取,推荐以进程名称,因为进程ID有可能会改变) -
取消输入
:ctrl + c
-
退出
:ctrl + d
-
清屏
:command + r
显示的
cy#
说明已经进入该运行的程序了
Cycript常用语法
1、UIApp
等价于: [UIApplication sharedApplication]
2、定义变量
var 变量名 = 变量值
3、用内存地址获取对象
#内存地址
4、ObjectC.classes
已加载的所有OC类
5、查看对象的所有成员变量
*对象
6、递归打印view的所有子控件
[UIApp.keyWindow recursiveDescription]
[UIApp.keyWindow recursiveDescription].toString()
UIApp.keyWindow.recursiveDescription().toString()
7、筛选出某种类型的对象
choose(对象类型名称)
choose(UIViewController)
8、MJ 老师封装了一套代码mjTool.js(超级好用)
第一步,下载的文件拷贝到手机目录/usr/lib/cycript0.9下,文件名就是框架的名称,比如本案例中的MJTool.cy
导入框架
@import MJTool
获取当前显示的ViewController
终端命令:MJFrontVc()
获取某个类的对象方法名列表,支持正则表达式查询
MJInstanceMethodNames(类的名称)
MJInstanceMethodNames(类的名称,正则表达式)
递归打印子视图
MJSubviews()
查看成员变量
MJIvarNames(对象)
查看appId: MJAppId
查看appPath:MJAppPath
查看docPath: MJDocPath
查看cachesPath: MJCachesPath
ps命令
手机设备安装adv-cmds插件
ps命令是process status 的缩写,使用PS命令可以列出系统当前的进程
- 列出所有的进程:
ps -A
- 搜索关键字:
ps -A | grep 关键字
扩展:
如何查看中文的unicode代码
终端使用python