Ubuntu10.04上如何搭建iPhone開發環境?
如何在Ubuntu10.04上搭建iPhone開發環境呢?下文給出了詳細的描述,具體內容如下所述。
1.準備Ubuntu環境
Ubuntu10.04
- sudoapt-getinstallgit-corelibxar-devbisonflexpatchopenssllibbz2-devlibssl-devautoconf
- sudoapt-getinstallbuild-essentialgnustepgobjcgnustep-makelibgnustep-base-devgnustep-develuuid
gcc,g++等編譯器默認已經安裝
- sudoapt-getinstallg++
Ubuntu10.04amd64:
在64位系統上,apt-get找不到xar,就從網站上下載xar安裝,要先安裝依賴文件libxar1,再安裝xar
http://packages.Ubuntu.com/hardy/xar
2.準備SDK和iPhoneFireware文件
2.1
- iPhone1,2_3.1.2_7D11_Restore.ipsw
http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-7265.20091008.Xsd32/iPhone1,2_3.1.2_7D11_Restore.ipsw
2.2
iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg
3.準備iphonedevonlinux源代碼、SDK和firmware文件
3.1 checkoutiphonedevonlinux源代碼
- $mkdir-p~/iPhone/toolchain
- $cd~/iPhone/toolchain
- $svncheckouthttp://iphonedevonlinux.googlecode.com/svn/trunk/./
目前checkoutout的svn版本為revision83
3.2 拷貝SDK,firmware文件到相應目錄
- $mkdir-p~/iPhone/toolchain/files/firmware
- $mviphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg~/iPhone/toolchain/files/
- $mviPhone1,2_3.1.2_7D11_Restore.ipsw~/iPhone/toolchain/files/firmware/
4.執行toolchain.sh
4.1 sudo./toolchain.shheaders
4.2 sudo./toolchain.shfirmware
由于GFW的原因,這一步可能不成功。如果失敗了,就手工修改toolchain.sh,直接添加解密firmware的key
修改toolchain.sh如下:
注視掉以下內容:
- if[-z"$DECRYPTION_KEY_SYSTEM"];then
- #echo"Weneedthedecryptionkeyfor`basename$FW_RESTORE_SYSTEMDISK`."
- #echo"I'mgoingtotrytofetchitfrom$IPHONEWIKI_KEY_URL...."
- #
- #IPHONEWIKI_KEY_URL=$(wget--quiet-O-$IPHONEWIKI_KEY_URL|awk'
- #BEGIN{IGNORECASE=1;}
- #/name="'${DEVICE}'/{found_phone=1;}
- #/.*'${TOOLCHAIN_VERSION}'.*/&&found_phone{found_firmware=1;}
- #/.*href=../../.*/&&found_firmware{while(sub(/href=|"/,"",$3));;print$3;exit;}
- #')
- #
- #DECRYPTION_KEY_SYSTEM=`wget--quiet-O-"http://#www.theiphonewiki.com"$IPHONEWIKI_KEY_URL|awk'
- #BEGIN{IGNORECASE=1;}
- #/.*VFDecrypt.*/{print$3;}
- #'`
- DECRYPTION_KEY_SYSTEM="a8a886d56011d2d98b190d0a498f6fcac719467047639cd601fd53a4a1d93c24e1b2ddc6"
- if[!"$DECRYPTION_KEY_SYSTEM"];then
- error"Sorry,nodecryptionkeyforsystempartitionfound!"
- exit1
- fi
- echo"Ifoundit!"
- fi
- message_status"Mounting${FW_RESTORE_SYSTEMDISK}..."
- mount_dmg"${TMP_DIR}/${FW_RESTORE_SYSTEMDISK}""${MNT_DIR}""${DECRYPTION_KEY_SYSTEM}"
別忘了添加DECRYPTION_KEY_SYSTEM=...這一行
4.3sudo./toolchain.shdarwin_sources
4.4sudo./toolchain.shbuild
在這一步會出錯,我遇到兩個文件需要修改:
- /home/jack/iPhone/toolchain/toolchain/src/cctools/ld64/src/MachOWriterExecutable.hpp:2222:error:‘sprintf’wasnotdeclaredinthisscope
- /home/jack/iPhone/toolchain/toolchain/src/cctools/ld64/src/Options.cpp:3160:error:‘fprintf’wasnotdeclaredinthisscope
查看~/iPhone/toolchain/toolchain/bld/cctools-iphone/make.log文件,找到編譯出錯的文件,添加下面兩行:
#include
#include
然后再次執行sudo./toolchain.shbuild,注意在提示是否checkout時,選擇"n",patch也選擇"n"
如果出現”Itseemslikethetoolchainbuilt!”,說明toolchainbuild成功。
5.測試toolchain
5.1設置PATH、
在~/.bashrc中加入:
- PATH=~/iphone/toolchain/toolchain/pre/bin:$PATH
5.2編譯HelloToolchain
- cd~/iPhone/toolchain/app/HelloToolch
執行IP=192.168.1.3makedeploy,其中IP是iPhone手機的IP地址,前提是已經越獄,并且通過ssh能夠進行訪問
在手機上可以看到HelloToolchain的應用,點擊執行后在手機上顯示出“HelloToolchain”
如果編譯出錯,進行如下處理:
- mv~/iPhone/toolchain/toolchain/sys/System~/iPhone/toolchain/toolchain/sys/System2mv~/iPhone/toolchain/toolchain/sys/usr/lib~/iPhone/toolchain/toolchain/sys/usr/lib2cp~/iPhone/toolchain/sdks/iPhoneOS3.1.2.sdk/System~/iPhone/toolchain/toolchain/sys/cp~/iPhone/toolchain/sdks/iPhoneOS3.1.2.sdk/usr/lib~/iPhone/toolchain/toolchain/sys/usr/
6.參考
1. installldid
- You'llneedldidtosignyourcode,youcangetitontheiPhonebydoing:
- $sudoapt-getinstallldid
- Here'showtogetitonLinux/OXS:
- First,downloadfromsaurik'swiththis:
- $wgethttp://www.linuxidc.com/system/systemfiles/2011/03/ldid-1.0.610.tgz
- Now,Unzipit:
- $tar-zxfldid-1.0.610.tgz
- Movetotheresultfolder:
- $cdldid-1.0.610
- Compileit:
- $g++-I.-outil/ldid{,.cpp}-xcutil/{lookup2,sha1}.c
- exportCODESIGN_ALLOCATE=.../toolchain/pre/bin/arm-apple-darwin9-codesign_allocate;ldid-Syourlib
總結:
看完本文后,大家是不是也學會了在Ubuntu10.04上搭建iPhone環境了呢。好了,大家趕緊自己動手操作一下吧。更多有關linux系統的知識還有待于讀者去探索和學習。
【編輯推薦】
- 關于Ubuntu LUA安裝環境詳解
- Ubuntu10.10如何取消交換設備?
- Ubuntu 11.10 beta1十大功能圖解
- 教大家把Ubuntu界面改造成Windows7系統
- Ubuntu10.04上如何搭建iPhone開發環境? 【責任編輯:韓亞珊 TEL:(010)68476606】