Cycript的使用。
一、Cycript
Cycript是Objective-C++、ES6(JavaScript)、Java等语法的混合物。可以用来探索、修改、调试正在运行的Mac\iOS APP。
文档:http://www.cycript.org/manual/
通过Cydia安装Cycript,即可在iPhone上调试运行中的APP。
1.1. 开启Cycript
开启Cycript有三种方式:
1 | cycript |
取消输入:Ctrl + C
退出:Ctrl + D
清屏:Command + R
1.2. ps命令
安装adv-cmds。
ps命令是process status的缩写,使用ps命令可以列出系统当前的进程。
列出所有的进程:
1 | ps –A |
搜索关键词:
1 | ps –A | grep 关键词 |
1.3. 常用语法
应用程序
1
2UIApp等价于
[UIApplication sharedApplication]定义变量
1
var 变量名 = 变量值
用内存地址获取对象
1
#内存地址
应用已加载的所有OC类
1
ObjectiveC.classes
查看对象的所有成员变量
1
*对象
递归打印view的所有子控件(跟LLDB一样的函数)
1
view.recursiveDescription().toString()
筛选出某种类型的对象
1
2choose(UIViewController)
choose(UITableViewCell)
1.4. 封装Cycript
我们可以将常用的Cycript代码封装在一个.cy
文件中。exports
参数名固定,用于向外提供接口。
将.cy
文件存放到/usr/lib/cycript0.9
目录下。
在Cycript中引用.cy文件,并使用它提供的接口:
MJRefresh作者创建的常用库:https://github.com/CoderMJLee/mjcript