前言
Cycript 允許開發(fā)人員使用 Objective-C 和 JavaScript 混合語(yǔ)法, 通過(guò)具有語(yǔ)法高亮顯示和 tab 鍵智能補(bǔ)全功能的可交互控制臺(tái), 在 iOS 或 macOS 上探索和修改正在運(yùn)行的 app.
安裝
下載 SDK
下載官方 SDK, 并解壓到合適的位置. 這里我直接放到 /opt
下.
配置環(huán)境變量
使用 Terminal 或其他文本編輯軟件編輯 .bash_profile
文件. 這里使用 Terminal 編輯.
vim ~/.bash_profile
在合適位置輸入:
export CYCRIPT=/opt/cycript_0.9.594/
export PATH=$PATH:$CYCRIPT
保存退出. 在 Terminal 中應(yīng)用剛配置好的環(huán)境變量:
source .bash_profile
這里我使用的是 iTerm2
+ oh my zsh
套裝, 因此可以將上述命令直接寫到 .zshrc
文件中. 使用 Terminal 或其他文本編輯軟件打開 .zshrc 文件:
vim ~/.zshrc
在合適的位置輸入上述命令即可.
使用
檢驗(yàn) Cycript 是否安裝成功最直接的方法就是看能不能使用. 在 Terminal 中輸入 cycript
, 如果在輸入過(guò)程中有補(bǔ)全提示, 且輸入完成后按回車, 可以進(jìn)入到以 cy#
開頭的環(huán)境中, 即表示安裝成功.
踩坑
在安裝過(guò)程中, 可能會(huì)遇到 ruby 鏡像找不到的問(wèn)題, 具體描述如下:
dyld: Library not loaded: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/libruby.2.0.0.dylib
Referenced from: /opt/cycript_0.9.594/Cycript.lib/cycript-apl
Reason: image not found
首先我們查看電腦的 ruby 版本:
ruby -v
可以看到 ruby 版本高于 Cycript 要求的 2.0.0, 這里我的是 2.3.7p456
. 該問(wèn)題主要有兩種解決方案:
1.使用軟連接將當(dāng)前版本拷貝一份到并命名為 2.0.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
使用該方法可能遇到的一個(gè)問(wèn)題是權(quán)限問(wèn)題. 在未關(guān)閉 SIP 的情況下, 執(zhí)行第一條命令會(huì)提示:
mkdir: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib: Operation not permitted
解決方法就是重啟關(guān)閉 SIP 后再次執(zhí)行即可.
2.使用 homebrew 安裝 2.0 版本的 ruby, 并將 2.0.0 的 dylib 文件拷貝到 Cycript.lib 目錄下即可.
brew install ruby@2.0
cp /usr/local/Cellar/ruby@2.0/2.0.0-p648_6/lib/libruby.2.0.0.dylib /opt/cycript_0.9.594/Cycript.lib/