Ubuntu10.04上如何搭建iPhone開發(fā)環(huán)境?
如何在Ubuntu10.04上搭建iPhone開發(fā)環(huán)境呢?下文給出了詳細(xì)的描述,具體內(nèi)容如下所述。
1.準(zhǔn)備Ubuntu環(huán)境
Ubuntu10.04
- sudoapt-getinstallgit-corelibxar-devbisonflexpatchopenssllibbz2-devlibssl-devautoconf
- sudoapt-getinstallbuild-essentialgnustepgobjcgnustep-makelibgnustep-base-devgnustep-develuuid
gcc,g++等編譯器默認(rèn)已經(jīng)安裝
- sudoapt-getinstallg++
Ubuntu10.04amd64:
在64位系統(tǒng)上,apt-get找不到xar,就從網(wǎng)站上下載xar安裝,要先安裝依賴文件libxar1,再安裝xar
http://packages.Ubuntu.com/hardy/xar
2.準(zhǔn)備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.準(zhǔn)備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文件到相應(yīng)目錄
- $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.執(zhí)行toolchain.sh
4.1 sudo./toolchain.shheaders
4.2 sudo./toolchain.shfirmware
由于GFW的原因,這一步可能不成功。如果失敗了,就手工修改toolchain.sh,直接添加解密firmware的key
修改toolchain.sh如下:
注視掉以下內(nèi)容:
- 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
在這一步會(huì)出錯(cuò),我遇到兩個(gè)文件需要修改:
- /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文件,找到編譯出錯(cuò)的文件,添加下面兩行:
#include
#include
然后再次執(zhí)行sudo./toolchain.shbuild,注意在提示是否checkout時(shí),選擇"n",patch也選擇"n"
如果出現(xiàn)”Itseemslikethetoolchainbuilt!”,說明toolchainbuild成功。
5.測(cè)試toolchain
5.1設(shè)置PATH、
在~/.bashrc中加入:
- PATH=~/iphone/toolchain/toolchain/pre/bin:$PATH
5.2編譯HelloToolchain
- cd~/iPhone/toolchain/app/HelloToolch
執(zhí)行IP=192.168.1.3makedeploy,其中IP是iPhone手機(jī)的IP地址,前提是已經(jīng)越獄,并且通過ssh能夠進(jìn)行訪問
在手機(jī)上可以看到HelloToolchain的應(yīng)用,點(diǎn)擊執(zhí)行后在手機(jī)上顯示出“HelloToolchain”
如果編譯出錯(cuò),進(jìn)行如下處理:
- 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
總結(jié):
看完本文后,大家是不是也學(xué)會(huì)了在Ubuntu10.04上搭建iPhone環(huán)境了呢。好了,大家趕緊自己動(dòng)手操作一下吧。更多有關(guān)linux系統(tǒng)的知識(shí)還有待于讀者去探索和學(xué)習(xí)。
【編輯推薦】