轉自:http://www.cnblogs.com/jys509/p/5439654.html
項目越來越大,代碼編譯時間越來越長,你是不是早已經厭倦了改一點點UI佈局就要重新編譯一次項目的過程,我們一分鐘幾百萬上下的,怎能被編譯浪費掉珍貴的時間。使用injectionforxcode這款插件,提高我們編程時的效率。
先上插件的GitHub地址:injectionforxcodeGitHub地址
官方演示
看看強大的效果,即寫即看到效果:
安裝
我們可以通過Alcatraz來安裝,如果安裝成功沒有找到多出來的兩個選項,我們通過下載插件-->打開工程,編譯後,重啓Xcode。
再次打開Xcode我們可以看到Product菜單下多出了兩個選項
試驗
- (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; [self setupTableView]; } -(void)injected{ [self viewDidLoad]; }
要注意的是:injected,Corl + = 更新界面後,就可以看到效果。
真機調試
另外,我們想要真機調度,網上說添加腳本這些,我試了都不行。另外找到了解決方法
由於我們在模擬器裏運行了,可以看到目錄下多了一個文件夾。
第一步:
點擊”Patch Project for Injection“,插入真機的相關代碼。如果下次我們不需要真機調試了,直接點擊”Revert Injection's Changes“就可以消除了。
插入的相關代碼,我們可以在main.m文件中看到,如下圖:
第二步 方法一:
我們Crol+=運行後,發現報錯,如下:
基本意思是:真機調試,需要用戶證書,但我們的系統上綁定了多個證書,讓我們在Debug-iphoneos下綁定一個我們需要調試的真機證書即可。
我們打開文件目前,會發現多了一個”iOSInjectionProject“文件夾,我們需要找的是identity.txt這個文件
打開後,看到
之後,我們在選中綁定需要調試的真機證書,直接command + c 複製,手打的需要注意空格。
粘貼到identity.txt下。注意不要手敲,有空格的。
保存後,我們再control + =,已經成功。
第二步 方法二:
除了手動改identity.txt方式之外,還可以通過新增運行腳本方式。
1、先去 project-> Build Phases 添加一個 Run script,內容爲:
echo "$CODESIGNING_FOLDER_PATH" >/tmp/"$USER.ident" && echo "$CODE_SIGN_IDENTITY" >>/tmp/"$USER.ident" && exit;
2、修改 工程 target 的 Code Siging ,記住只修改 Any iOS SDK 後面的兩個爲 跟我們Xcode 中一樣。
3、然後到我們的工程目錄,給 iOSInjectionProject 這個文件夾刪掉。刪掉之後,com + shift + k, clean 一下工程,在運行到手機上,沒什麼問題的話,真機上就能熱調試了。
4、我們打開identity.txt文件,看到裏面自動幫我們添加上了證書。
報錯處理
1.沒有選中要編譯的文件。我們需要選擇當前需要調試的controller文件。
2.運行沒有效果。加上:
-(void)injected{ [self viewDidLoad]; }
3.真機調試,還是報證書不對,如:
請檢查一下,你的需要真機調試的證書,是不是安裝了兩次,如果安裝了兩次,也會提示說證書選擇有誤,請只保留其中一個。
4.IP地址不正確
這個錯誤指的是沒有權限操作IP。
我們在真機調試的時候,會在main.m中插入以下代碼:
第一個和第二個IP地址,指向的是外網的IP。外網的IP,我們是沒有權限操作的,只需要把這兩個IP刪除掉即可。如
static const char *_inIPAddresses[] = {"192.168.1.105", "127.0.0.1", 0};
破解處理
該插件只允許我們使用兩週,如果使用到期,我們只需要刪除 iOSInjectionProject 這個文件夾,重新運行又可以使用了。