安卓君通過Android Studio 將一次性的屬性放入xml中可以實現(xiàn)代碼的UI呈現(xiàn)實時預覽參考安卓實時預覽巡莹,實現(xiàn)UI方面的快速開發(fā),而ios在開發(fā)調試UI界面的時候必須通過漫長的過程(編譯->運行->安裝->顯示->點擊跳轉到目標界面)才能被我們看到甜紫,在追求極致的UI快速開發(fā)中這無疑是令人尷尬的降宅,畢竟兩者耗時不在一個維度上面。下面介紹一個插件工具injectionforxcode囚霸,github地址:該插件github地址腰根。
? ? ?安裝:xcode8禁止了插件的安裝后面眾人想出了重新簽名xcode來破解 然后在上架的時候恢復簽名,或者干脆使用兩個xcode一個用來平時開發(fā)一個用來打包邮辽。這個可以自行谷歌唠雕。在下使用了重新簽名xcode方法贸营,簡單介紹哈:
$:update_xcode_plugins --unsign ? ?// 解除簽名
$:update_xcode_plugins --restore // 重新簽名
以上的終端操作不需要cd到具體的目錄直接在當前用戶名下即可吨述;
然后進入文件夾
$:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
添加自己的UUIDs進去,找到自己的見下面:
$:defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID
然后重啟xcode ->load bundle
以上就是整個過程了钞脂,寫的非常的詳細也不裝逼揣云,希望大家都能看懂
每次修改約束或者顏色字體等直接contol+shift+=就可以了。會省去重新編譯以及打開app的步驟冰啃,整個插件的原理:
它通過解析應用的build日志來判斷源代碼文件上次是怎么被編譯的邓夕。然后會把這些重新編譯一遍包在一個已經(jīng)通過動態(tài)加載器(dynamic loader)注入到應用的bundle里。這個時候其實有兩個版本的類在app里阎毅,一個原始的和一個修改過的版本焚刚。修改過的版本通過和原始類"swizzled"來產(chǎn)生效果。
swizzling利用了OC的runtime扇调。這個也可以在Swift中沒有標記為final或者private的方法(可以被override的方法)矿咕。對結構體無效