Cycript允許開發(fā)人員探討和修改iOS和Mac OS X上運行的應用程序。
Cycript是一個理解Objective-C語法的javascript解釋器,它能夠掛鉤正在運行的進程,能夠在> 運行時修改應用的很多東西。
Cyctipt 安裝
1. 下載資源
Cycript 官方完整
資源下載完成后,解壓。
2. 將資源放入指定位置
將資源放入到一個自己想要安裝的位置,我的是放在磁盤 -> opt文件夾下,如果安裝過MonkeyDev,你會發(fā)現(xiàn)它的資源文件也在這里。
3. 配置環(huán)境變量
進入終端,編輯.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`,保存退出。
更新剛配置的環(huán)境變量
$ source .bash_profile
如果是使用iTerm2+oh my zsh組合,可以在.zshrc配置文件中導入source .bash_profile
,這樣每次打開就不用手動執(zhí)行了!
$ vim ~/.zshrc
驗證配置是否成功
$ cycript
完成?。?!
點擊control + D
可以退出 Cycript。
執(zhí)行后遇到了這個問題:
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. 關閉系統(tǒng)的SIP
在 OS X El Capitan 中有一個跟安全相關的模式叫 SIP(System Integrity Protection ),它禁止讓軟件以 root 身份來在 Mac 上運行,在升級到 OS X 10.11 中或許你就會看到部分應用程序被禁用了,這些或許是你通過終端或者第三方軟件源安裝。對于大多數(shù)用戶來說,這種安全設置很方便,但是也有些開發(fā)者或者高級 Mac 用戶不需要這樣的設置。
電腦重啟,聽到咚的時候,按住
command+R
,進入恢復模式-
打開終端,輸入
csrutil disable
,重啟
打開終端,輸入`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
注:根據(jù)每個人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環(huán)境變量及遇到的問題》
文章無特殊說明皆為原創(chuàng),轉載請說明
如果感覺有幫助的話,請點一個喜歡!