Cycript允许开发人员探讨和修改iOS和Mac OS X上运行的应用程序。
Cycript是一个理解Objective-C语法的javascript解释器,它能够挂钩正在运行的进程,能够在> 运行时修改应用的很多东西。
Cyctipt 安装
1. 下载资源
Cycript 官方完整
资源下载完成后,解压。
2. 将资源放入指定位置
将资源放入到一个自己想要安装的位置,我的是放在磁盘 -> opt文件夹下,如果安装过MonkeyDev,你会发现它的资源文件也在这里。
3. 配置环境变量
进入终端,编辑.base_profile
文件
$ vim ~/.bash_profile
增加相对应的绝对路径,点击shift + i
进入编辑模式,输入一些代码,其中cycript_src='你的 cycript资源所在的绝对路径'
,例如我的就是
export cycript_src=/opt/cycript_0.9.594/
export PATH=$PATH:$cycript_src
点击 esc 退出编辑模式,输入`:+ wq`,保存退出。
更新刚配置的环境变量
$ source .bash_profile
如果是使用iTerm2+oh my zsh组合,可以在.zshrc配置文件中导入source .bash_profile
,这样每次打开就不用手动执行了!
$ vim ~/.zshrc
验证配置是否成功
$ cycript
完成!!!
点击control + D
可以退出 Cycript。
执行后遇到了这个问题:
dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
Referenced from: /Users/devzkn/Downloads/cycript_0.9.594/Cycript.lib/cycript-apl
Reason: image not found
这个错误是因为电脑的ruby版本太高导致
1. 首先查看电脑ruby版本
$ ruby -v
有可能你的电脑安装了rvm,用ruby -v命令查看的是指定的ruby版本,正确做法应该是cd到/System/Library/Frameworks/Ruby.framework/Versions/ 目录下查看具体版本
$ cd /System/Library/Frameworks/Ruby.framework/Versions/
$ ls
2. 关闭系统的SIP
在 OS X El Capitan 中有一个跟安全相关的模式叫 SIP(System Integrity Protection ),它禁止让软件以 root 身份来在 Mac 上运行,在升级到 OS X 10.11 中或许你就会看到部分应用程序被禁用了,这些或许是你通过终端或者第三方软件源安装。对于大多数用户来说,这种安全设置很方便,但是也有些开发者或者高级 Mac 用户不需要这样的设置。
电脑重启,听到咚的时候,按住
command+R
,进入恢复模式-
打开终端,输入
csrutil disable
,重启
如果想打开SIP,重复上两步,命令改为
csrutil enable
3. 直接把本机的ruby版本的复制一份,改为2.0即可
运行如下命令:
sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/
sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
注:根据每个人ruby版本不同,将上面第二条命令的/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/libruby.2.3.0.dylib中的2.3改成本机的ruby版本。
这里不是降级ruby,只是复制一份2.0的ruby的dylib,让cycript运行起来。
本文章参考:《配置cycript环境变量及遇到的问题》
文章无特殊说明皆为原创,转载请说明
如果感觉有帮助的话,请点一个喜欢!