Cycript文件的使用

基本用法

在使用cycript时,我们可以通过类似 UIApp.keyWindow.rootViewController 这样的方式,获取到对象进行调试。 但是每次都写这样复杂的相同的命令,未免有些太麻烦了。对此,我们可以创建.cy文件。.cy文件可以将常用的cycript指令封装在一个文件中,在将其@import依附在进程后,可以直接在cycript环境下调用已经封装了的指令,方便使用。其存放目录在: /usr/lib/cycript0.9/ 目录下。

首先,尝试封装 UIApp.keyWindow.rootViewController。创建一个test.cy,文件中写入如下代码:

mm_rootVc = UIApp.keyWindow.rootViewController
复制代码

将test.cy文件放到越狱手机的$/usr/lib/cycript0.9这个目录下

在cycript中使用如下:

1. 首先,引入文件 
$ @import test
2. 在cycript中,直接使用
$ mm_rootVc
复制代码

这种方式,是通过cycript语法, 将UIApp.keyWindow.rootViewController的结果直接赋值给了变量mm_rootVc。这样做比较简单,但也存在弊端,比如我们在工程中切换window的时候,由于mm_rootVc已经赋值并存储在内存中,所以并不会随之切换,这是我们在继续使用mm_rootVc就会出现问题。这种情况下,我们可以使用函数:

在test.cy文件中写入如下代码:

mm_rootVcFunc = function() {
	return UIApp.keyWindow.rootViewController;
}
复制代码

在cycript中使用如下:

1. 首先,引入文件 
$ @import test
2. 在cycript中,直接使用
$ mm_rootVcFunc()
复制代码

多级目录引入

在使用cycript文件的时候,我们将文件放入到 /usr/lib/cycript0.9 这个目录下,需要的时候通过 @import 引入.cy文件。但是当我们通过功能或者其他条件封装成多个.cy文件的时候,一般会分成多级目录,这样条理更清晰。那么在这种情况下,应该怎样引入.cy文件呢?

比如我们在 $/usr/lib/cycript0.9 目录下,创建了一个mm文件夹,在mm文件夹下创建了一个test文件夹,text.py文件在这个目录下。引入text.py文件的方式如下:

@import mm.test.test    //第一个test是文件目录,第二个test是文件名称。
复制代码

附加cy文件

按之前的做法,我们已经可以实现在cycript环境下使用自己封装的.cy文件。我们还可以通过附加的方式,直接将文件附加。

命令如下:

cycript -p WeChat /usr/lib/cycript0.9/test.cy; cycript -p WeChat
复制代码

之前不通过附加的方式,我们每次修改.cy文件并覆盖到$/usr/lib/cycript0.9/ 的时候,都需要断开cycript连接,结束程序,然后重新开启程序,连接cycript。之后才可以使用修改后的.cy文件。但是通过附加的方式,就可以在不结束进程的情况下,直接将修改过后的.cy文件附加并使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值