安装cycript后,在控制台输入命令
$ /opt/cycript_0.9.594
$ ./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版本
具体命令:
$ 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.直接把2.3的复制一份,改为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运行起来。
再重新在控制台输入命令
$ /opt/cycript_0.9.594
$ ./cycript
运行之后,出现则安装成功:
cy#
参考:
https://www.jianshu.com/p/f771310ea2e9
https://www.jianshu.com/p/dff9d05d67a8