越獄開發:用iosOpenDev配置越獄開發環境 編寫第一個hello world-b


上網搜索越獄環境搭建,查到iosOpenDev軟件,是個很方便的編寫插件,而且可以直接用Xcode創建的工具,便開始着手學習如何去安裝

集合了網上的方法后,我安裝的時候發現:

1.作者最后更新的時間是四個月前,而且並未適配Xcode 6之后的版本,所以在當前OS X 10.11.1 和Xcode 7 下造成了很多問題

尤其是大量的安裝失敗卻得不到解答方法,很是讓我懊惱

2.同時需要適配的安裝工具也已經嚴重過期,比如theos,ldid等工具

所以根據自己的摸索,附上一篇如何安裝iosOpenDev的流程:

 

注意:請盡量嘗試在翻牆后再進行安裝,有一些網址也許會被國內網絡拒絕訪問

 

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提供的安裝方法
 
  1. 打開終端.
  2. 選擇theos的安裝目錄,官方建議放在默認的 /opt/theos.然后執行
    export THEOS=/opt/theos
    • //如果你選擇的是用戶之上的目錄,需要加上sudo指令,sudo export THEOS=/opt/theos
  3. 下載theos工具  (特別感謝網名為逍遙笛子 的熱心朋友 提供的分支,由於原theos最新的版本不兼容iosopendev,所以用15年的老版本,地址如下(已經得到該名朋友的同意))
    • git clone -b stableversion https://github.com/haorenqq/theos/ $THEOS
  4. 下載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.git
    cd ldid
    git submodule update --init
    ./make.sh
    cp -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
 在CODE上查看代碼片派生到我的代碼片
  1. #import <UIKit/UIKit.h>  
  2.   
  3. %hook SpringBoard  
  4.   
  5. - (void)applicationDidFinishLaunching:(id)application{  
  6.     %orig;  
  7.       
  8.     UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"Welcome" message:@"HelloWorld!" delegate:nil cancelButtonTitle:@"Thanks" otherButtonTitles:nil];  
  9.     [alert show];  
  10. }  
  11. %end  

 

 

在已經越獄的手機上打開Cydia,搜索下列插件
如果搜索不到,打開軟件源-編輯 刪除BigBos和ModMyi,再回到首頁,點擊更多軟件源,重新添加這兩個即可搜索到下列插件
Core Utilities
Core Utilities(/bin)
diskdev-cmds
file-cmds
system-cmds
Mobileterminal
openSSH
sshpass
toggle ssh
preferencdloader
substrate safe mode
syslogd 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為你的設備對應的版本即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM