美文网首页
Mac上调用cycript出错:dyld: Library no

Mac上调用cycript出错:dyld: Library no

作者: nenhall | 来源:发表于2018-06-07 10:53 被阅读76次

    在Mac使用cycript在非越狱手机上调试时,调用:./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
    

    输出如下:

    nenhallwork  ~  cd /System/Library/Frameworks/Ruby.framework/Versions/
    nenhallwork  /System/Library/Frameworks/Ruby.framework/Versions  ls
    2.3     Current
    

    说明我当前的版本是 2.3

    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运行起来。

    4. 现在调用./cycript能正常进入cy模式了:

    正常进入cy模式.png

    参考

    相关文章

      网友评论

          本文标题:Mac上调用cycript出错:dyld: Library no

          本文链接:https://www.haomeiwen.com/subject/hkgwsftx.html