Ubuntu 10.04上搭建iPhone开发环境
1. 准备Ubuntu环境
Ubuntu 10.04
sudo apt-get install git-core libxar-dev bison flex patch openssl libbz2-dev libssl-dev autoconf
sudo apt-get install build-essential gnustep gobjc gnustep-make libgnustep-base-dev gnustep-devel uuid
gcc, g++等编译器默认已经安装
sudo apt-get install g++
Ubuntu 10.04 amd64:
在【zài】64位系统【wèi xì tǒng】上,apt-get找不到🚉xar,就从网【jiù cóng wǎng】站上下载🐡xar安装【ān zhuāng】,要先安装【ān zhuāng】依赖💫文件libxar1, 再安装【ān zhuāng】😖xar
http://packages.Ubuntu.com/hardy/xar
2.准备【zhǔn bèi】SDK和iPhone Fireware文件🈵
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 bèi】iphonedevonlinux源代码【yuán dài mǎ】🗳、SDK和❓firmware文件
3.1 checkout iphonedevonlinux源代码【yuán dài mǎ】🕐
$ mkdir -p ~/iPhone/toolchain
$ cd ~/iPhone/toolchain
$ svn checkout http://iphonedevonlinux.googlecode.com/svn/trunk/ ./
目前🛂checkout out的svn版本为【bǎn běn wéi】revision 83
3.2 拷贝【kǎo bèi】📑SDK,firmware文件到相应目【xiàng yīng mù】⚪录
$ mkdir -p ~/iPhone/toolchain/files/firmware
$ mv iphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg ~/iPhone/toolchain/files/
$ mv iPhone1,2_3.1.2_7D11_Restore.ipsw ~/iPhone/toolchain/files/firmware/
4. 执行toolchain.sh
4.1 sudo ./toolchain.sh headers
4.2 sudo ./toolchain.sh firmware
由于📔GFW的【de】原因❄,这一步【zhè yī bù】可能不🏚成功【chéng gōng】。如果失🏅败了,就手工修改toolchain.sh,直接添加解密【jiā jiě mì】firmware的【de】key
修改toolchain.sh如下:
注视掉以下内容:
if [ -z "$DECRYPTION_KEY_SYSTEM" ] ; then
# echo "We need the decryption key for `basename $FW_RESTORE_SYSTEMDISK`."
# echo "I'm going to try to fetch it from $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, no decryption key for system partition found!"
exit 1
fi
echo "I found it!"
fi
message_status "Mounting ${FW_RESTORE_SYSTEMDISK}..."
mount_dmg "${TMP_DIR}/${FW_RESTORE_SYSTEMDISK}" "${MNT_DIR}" "${DECRYPTION_KEY_SYSTEM}"
别忘了【bié wàng le】添加😰DECRYPTION_KEY_SYSTEM=...这一行
4.3 sudo ./toolchain.sh darwin_sources
4.4 sudo ./toolchain.sh build
在这一步会出【bù huì chū】🦏错【cuò】,我遇到两个文件需要【jiàn xū yào】🏁修改🌚:
/home/jack/iPhone/toolchain/toolchain/src/cctools/ld64/src/MachOWriterExecutable.hpp:2222: error: ‘sprintf’ was not declared in this scope
/home/jack/iPhone/toolchain/toolchain/src/cctools/ld64/src/Options.cpp:3160: error: ‘fprintf’ was not declared in this scope
查看【chá kàn】~/iPhone/toolchain/toolchain/bld/cctools-iphone/make.log文件,找到编译出错🕥的文件【de wén jiàn】🚯,添加下👴面两行【miàn liǎng háng】:
#include
#include
然后再次执行【cì zhí háng】 sudo ./toolchain.sh build, 注意在😪提示是【tí shì shì】😀否checkout时,选择🐴"n", patch也选择【yě xuǎn zé】🐴"n"
如果出📢现【xiàn】”It seems like the toolchain built!”,说明【shuō míng】toolchain build成功🚩。
5. 测试toolchain
5.1 设置PATH、
在~/.bashrc中加入:
PATH=~/iphone/toolchain/toolchain/pre/bin:$PATH
5.2 编译【biān yì】💻HelloToolchain
cd ~/iPhone/toolchain/app/HelloToolch
执行IP=192.168.1.3 make deploy, 其中IP是🤸iPhone手机的【shǒu jī de】IP地址【dì zhǐ】🥤,前提是🤸已经越狱【yù】,并且通🍖过ssh能够进【néng gòu jìn】🍚行访问
在手机上【shǒu jī shàng】可以看到【kàn dào】📃HelloToolchain的应用⚽,点击执【diǎn jī zhí】行后在手机上【shǒu jī shàng】显示出㊗“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. install ldid
You'll need ldid to sign your code, you can get it on the iPhone by doing:
$ sudo apt-get install ldid
Here's how to get it on Linux/OX S:
First, download from saurik's with this:
$ wget http://www.linuxidc.com/system/systemfiles/2011/03/ldid-1.0.610.tgz
Now, Unzip it:
$ tar -zxf ldid-1.0.610.tgz
Move to the result folder:
$ cd ldid-1.0.610
Compile it:
$ g++ -I . -o util/ldid{,.cpp} -x c util/{lookup2,sha1}.c
export CODESIGN_ALLOCATE=.../toolchain/pre/bin/arm-apple-darwin9-codesign_allocate; ldid -S yourlib
关键词:Ubuntu,iPhone
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0