標籤:
上網搜尋越獄環境搭建,查到iosOpenDev軟體,是個很方便的編寫外掛程式,而且可以直接用Xcode建立的工具,便開始著手學習如何去安裝
集合了網上的方法後,我安裝的時候發現:
1.作者最後更新的時間是四個月前,而且並未適配Xcode 6之後的版本,所以在當前OS X 10.11.1 和Xcode 7 下造成了很多問題
尤其是大量的安裝失敗卻得不到解答方法,很是讓我懊惱
2.同時需要適配的安裝工具也已經嚴重到期,比如theos,ldid等工具
所以根據自己的摸索,附上一篇如何安裝iosOpenDev的流程:
注意:請盡量嘗試在FQ後再進行安裝,有一些網址也許會被國內網路拒絕訪問
1.首先安裝MacPorts軟體,從官網根據mac本身的版本下載
下載後安裝,進度條在安裝時會停止一段時間,耐心等待 2.安裝完MacPorts後開啟終端 輸入 sudo port -v self update 更新MacPorts到最新版本,繼續耐心等待 3.更新完MacPorts後安裝DPKG檔案,在終端輸入sudo port -f install dpkg 該檔案用於打包.deb檔案,用時也比較長 上面三部需要耗費挺長時間,網速慢的時候一兩小時也是有可能的 4.安裝those工具,參考http://iphonedevwiki.net/index.php/Theos/Setup提供的安裝方法
- 開啟終端.
- 選擇theos的安裝目錄,官方建議放在預設的 /opt/theos.然後執行
export THEOS=/opt/theos
- //如果你選擇的是使用者之上的目錄,需要加上sudo指令,sudo export THEOS=/opt/theos
- 下載theos工具 (特別感謝網名為逍遙笛子 的熱心朋友 提供的分支,由於原theos最新的版本不相容iosopendev,所以用15年的老版本,地址如下(已經得到該名朋友的同意))
- 下載ldid工具到those的bin目錄下:4.1 執行./make.sh方法之前,需要注意//預設ldid檔案夾是不帶openssl檔案夾的,但是make.sh中卻又#include <openssl/err.h>等之類的openssl類下載附件,解壓,將附件中的openssl 檔案夾放到 ldid 檔案夾下//然後make.sh中的代碼預設是只匹配Xcode5-1-1的名稱的,如果你的xcode不是這個名稱,則會報錯,所以下面的方法是修改make.ssh檔案預設的是Xcode這個名稱然後再開啟make.sh,找到sudo xcode-select --switch /Applications/Xcode5-**.app這一行,將Xcode5**.app改為Xcode.app,下面還有一行也一樣要修改(或者直接將附件的make.sh放入ldid檔案夾下替換同名檔案)
git clone git://git.saurik.com/ldid.gitcd ldidgit submodule update --init./make.shcp -f ./ldid $THEOS/bin/ldid
5.接下來安裝IOSOpenDev,在官網下載最新的1.6.2版本,在安裝介面按Command+L,查看安裝日誌 5.1作者僅僅維護了Xcode5以及之前的版本,之後的版本有較大的變動 開啟上面附件裡面的Specifications檔案夾,裡面應該有8個檔案,iPhoneOS開頭的四個檔案放到/應用程式/Xcode/Content/Developer/Platforms/IphoneOS.platform/Developer/Library/Xcode/Specifications檔案夾下(如果沒有,請自己建立一個),iPhone Simulator 開頭的另外四個檔案放入/應用程式/Xcode/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications檔案夾下(如果沒有,請同樣建立一個)。另外在/應用程式/Xcode/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/檔案夾下建立usr檔案夾,usr檔案夾下再建立一個名為bin的檔案夾 作者的這個程式基於C編寫,且只有簡單的If else迴圈,所以如果不建立相對應的檔案夾,它是不會自己建立的,只會報錯,然後顯示安裝錯誤6.,這篇文章只是給出了除了作者的錯誤之外的相對的解決辦法,另外最好按照作者那篇文章(https://github.com/kokoabim/iOSOpenDev/wiki/Troubleshoot),比如在終端執行system_profiler SPDeveloperToolsDataType,拷貝Location:後面的資訊,再複製到sudo code-select -switch location:後面的資訊,執行代碼,再安裝iosOpenDev,另外還有另一個Xcode Lincese的問題,都在作者的文章中有解答 之後安裝就不會報錯,目前進行到這一步,如有進展,再更新 12.25 第一個helloworld編寫完成後,按照http://blog.csdn.net/lynjay/article/details/7936488這個文章,從5.開始配置iosOpenDev的環境//來自源作者lynjay的文章
在終端執行~/.bash_profile,
~/.bash_login or
~/.profile.這3個檔案你在你電腦中看是否能找到,我是找到
~/.bash_profile這個檔案,然後設定下面的環境變數
export iOSOpenDevPath=/opt/iOSOpenDev
export iOSOpenDevDevice= 非固定值,使用者需要先在已經越獄的iphone上點擊設定-網路-查看當前網路的IP地址,填入
export PATH=/opt/iOSOpenDev:$PATH
export PATH=/opt/local/bin:$PATH
export PATH=/opt/local/sbin:$PATH
接下來給SSH添加簽名,在Mac的Terminal裡輸入”iosod sshkey -h <裝置IP>”,中間問你是否繼續,當然yes.如果期間失敗了重新試下.我失敗了好幾次.可能是裝置螢幕關閉會斷網(我的iPod Touch總斷,iPad就不會).這樣就不用密碼也可以登陸裝置SSH了. 之後可以開啟Xcode選擇iosOpenDev-Logos Tweak,建立一個新的應用 建立後會出現一個.xm檔案一個.mm檔案,不要編輯.mm檔案 因為還不能正常編譯,不要擔心
xm檔案中有這樣一段說明
#error iOSOpenDev post-project creation from template requirements (remove these lines after completed) -- \
Link to libsubstrate.dylib: \
(1) go to TARGETS > Build Phases > Link Binary With Libraries and add /opt/iOSOpenDev/lib/libsubstrate.dylib \
(2) remove these lines from *.xm files (not *.mm files as they‘re automatically generated from *.xm files)
意思是要把libsubstrate.dylib添加到工程中(在安裝好的/opt/iOSOpenDev/lib 目錄下),然後把xm中的內容清空。mm檔案的內容會根據xm檔案中的內容編譯後自動產生。
之後清空.xm檔案的內容,輸入下列內容
[objc] view plain copy
- #import <UIKit/UIKit.h>
-
- %hook SpringBoard
-
- - (void)applicationDidFinishLaunching:(id)application{
- %orig;
-
- UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"Welcome" message:@"HelloWorld!" delegate:nil cancelButtonTitle:@"Thanks" otherButtonTitles:nil];
- [alert show];
- }
- %end
在已經越獄的手機上開啟Cydia,搜尋下列外掛程式如果搜尋不到,開啟軟體源-編輯 刪除BigBos和ModMyi,再回到首頁,點擊更多軟體源,重新添加這兩個即可搜尋到下列外掛程式Core UtilitiesCore Utilities(/bin)diskdev-cmdsfile-cmdssystem-cmdsMobileterminalopenSSHsshpasstoggle sshpreferencdloadersubstrate safe modesyslogd to /var/log/syslog再在Xcode中的Target的Build Settings中的Code Signing中,改為Don‘t Code Sign
最後開啟Target-Build Settings 找到iOSOpenDevDevice選項,填入越獄手機的本地ip
點擊Product- Build For -Profiling啟動應用
手機會重啟,之後在鎖定畫面就會彈出AlertView
其他問題:
1.可能會碰到真機串連後無法編譯的現象,修改build setting中的iOS Deployment Target為你的裝置對應的版本即可
越獄開發:用iosOpenDev配置越獄開發環境 編寫第一個hello world-b