- theos的編譯命令
在iosOpenDev之前,很多ios插件都使用theos編譯開發,現在使用theos開發的人也不在少數,
theos 有自己的模板用於開發一系列的插件程序,所以在早期開發的插件中基本上都是使用theos。
怎樣安裝theos,網上可以搜索到很多資料,這里不再介紹了,只簡單介紹下,theos的命令:
1 make package 2 make install 3 make package install 4 make clean
等等和一般的unix/linux 編譯類似,第一個是打包,第二個是安裝,第三個打包后安裝,第四個清理。
- 調試環境
ios開發受到很多apple的限制,插件也基本上都是建立在越獄、私有api的基礎之上,開發一個插件
首先需要一個越獄的設備用於測試,而調試程序還需要在cydia中安裝一些軟件,下面給出一些羅列
的清單,不盡詳細,如有遺漏歡迎補充:
1 #需要cydia安裝 2 Core Utilities 3 Core Utilities(/bin) 4 diskdev-cmds 5 file-cmds 6 system-cmds 7 Mobileterminal 8 openSSH 9 sshpass 10 toggle ssh 11 preferencdloader 12 substrate safe mode 13 syslogd to /var/log/syslog 14 iFile
上面的列表中的一些軟件,有些是必須自己安裝的,有些是已經在安裝cydia后自己已經安裝的,大家可
以比較自己已安裝的軟件,添加和搜索相應的cydia源進行安裝。
- 調試
在安裝完成以后就可以將theos編譯出的deb包通過ssh安裝到ios設備,進行調試了。不過在打包之前,
你需要在你的代碼中加入適當的NSLog用於檢測以后的運行狀態和執行情況。如果你有過開發山寨機的
經驗,相信你對這個過程不會陌生,這種方式就相當於程序運行的trace記錄,你需要根據這些記錄的信
息來判斷到底是程序的哪里出了問題。
程序出錯的信息保留在/var/log/syslog當中,注意,這個文件會越來越大,你需要做一段時間將它刪除,
重新創建一個相應的文件,同時設置好它的訪問權限,重啟設備,這樣你需要的trace消息才會再次被記錄。
查看這些調試信息,也有多種方式,如果你想實時的查看這些信息,可以通過打開Mobileterminal 輸入
tail -f /var/log/syslog 來查看,當然也可以通過ssh的方式,遠程的查看,ssh遠程登錄的終端命令是:
ssh root@xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx是你的測試設備的ip地址,默認的密碼是alpine),然后
再輸入上面的命令。如果你不需要實時跟蹤,你也可以把文件拷貝下來。比如通過一個叫Cyberduck.app的
鴨子。
- 找到bug
通常來說,上面的過程並不難辦,不懂的都可以通過google搜索,或者到http://stackoverflow.com提問
來獲得解決方法,真正難辦的是,你怎樣找到自己程序的bug。
坦白的說我也沒有很好的辦法,但是可以告訴你的是,在程序出現bug的時候會有如下的情況發生,在這些
情況出現的時候,你應該意識到,我的程序可能有bug,需要修改:
1、springboard的觸摸響應變慢
2、程序respring 到root模式
以上兩個問題是比較常見的。出現第一個問題通常是因為分配的內存沒有得到釋放或者一些訪問操作沒有做
線程安全的處理等等,第二個問題基本上都是訪問沒有分配的內存發生的。在遇到這些情況的時候,不要着急,
翻看你的trace記錄做一個大致的定位,然后再判斷該怎樣處理。
已經很長的文章了,這應該不是我的風格,下次講theos的makefile。