Ubuntu10.04上如何搭建iPhone开发环境?

运维 系统运维
本文介绍了Ubuntu10.04上搭建iPhone开发环境的步骤,其中包括准备Ubuntu环境、准备SDK和iPhoneFireware文件、准备iphonedevonlinux源代码、SDK和firmware文件、执行toolchain.sh、测试toolchain等内容。

如何在Ubuntu10.04上搭建iPhone开发环境呢?下文给出了详细的描述,具体内容如下所述。

1.准备Ubuntu环境

Ubuntu10.04

 

  1. sudoapt-getinstallgit-corelibxar-devbisonflexpatchopenssllibbz2-devlibssl-devautoconf  
  2.  
  3. sudoapt-getinstallbuild-essentialgnustepgobjcgnustep-makelibgnustep-base-devgnustep-develuuid 

 

gcc,g++等编译器默认已经安装

 

  1. sudoapt-getinstallg++ 

 

Ubuntu10.04amd64:

在64位系统上,apt-get找不到xar,就从网站上下载xar安装,要先安装依赖文件libxar1,再安装xar

http://packages.Ubuntu.com/hardy/xar

2.准备SDK和iPhoneFireware文件

2.1

 

  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源代码

 

  1. $mkdir-p~/iPhone/toolchain  
  2.  
  3. $cd~/iPhone/toolchain  
  4.  
  5. $svncheckouthttp://iphonedevonlinux.googlecode.com/svn/trunk/./ 

 

目前checkoutout的svn版本为revision83

3.2 拷贝SDK,firmware文件到相应目录

 

  1. $mkdir-p~/iPhone/toolchain/files/firmware  
  2.  
  3. $mviphone_sdk_3.1.2_with_xcode_3.1.4__leopard__9m2809.dmg~/iPhone/toolchain/files/  
  4.  
  5. $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如下:

注视掉以下内容:

 

  1. if[-z"$DECRYPTION_KEY_SYSTEM"];then  
  2.  
  3. #echo"Weneedthedecryptionkeyfor`basename$FW_RESTORE_SYSTEMDISK`."  
  4.  
  5. #echo"I'mgoingtotrytofetchitfrom$IPHONEWIKI_KEY_URL...."  
  6.  
  7. #  
  8.  
  9. #IPHONEWIKI_KEY_URL=$(wget--quiet-O-$IPHONEWIKI_KEY_URL|awk'  
  10.  
  11. #BEGIN{IGNORECASE=1;}  
  12.  
  13. #/name="'${DEVICE}'/{found_phone=1;}  
  14.  
  15. #/.*'${TOOLCHAIN_VERSION}'.*/&&found_phone{found_firmware=1;}  
  16.  
  17. #/.*href=../../.*/&&found_firmware{while(sub(/href=|"/,"",$3));;print$3;exit;}  
  18.  
  19. #')  
  20.  
  21. #  
  22.  
  23. #DECRYPTION_KEY_SYSTEM=`wget--quiet-O-"http://#www.theiphonewiki.com"$IPHONEWIKI_KEY_URL|awk'  
  24.  
  25. #BEGIN{IGNORECASE=1;}  
  26.  
  27. #/.*VFDecrypt.*/{print$3;}  
  28.  
  29. #'`  
  30.  
  31. DECRYPTION_KEY_SYSTEM="a8a886d56011d2d98b190d0a498f6fcac719467047639cd601fd53a4a1d93c24e1b2ddc6" 
  32.  
  33. if[!"$DECRYPTION_KEY_SYSTEM"];then  
  34.  
  35. error"Sorry,nodecryptionkeyforsystempartitionfound!"  
  36.  
  37. exit1  
  38.  
  39. fi  
  40.  
  41. echo"Ifoundit!"  
  42.  
  43. fi  
  44.  
  45. message_status"Mounting${FW_RESTORE_SYSTEMDISK}..."  
  46.  
  47. mount_dmg"${TMP_DIR}/${FW_RESTORE_SYSTEMDISK}""${MNT_DIR}""${DECRYPTION_KEY_SYSTEM}" 

 

别忘了添加DECRYPTION_KEY_SYSTEM=...这一行

4.3sudo./toolchain.shdarwin_sources

4.4sudo./toolchain.shbuild

在这一步会出错,我遇到两个文件需要修改:

 

  1. /home/jack/iPhone/toolchain/toolchain/src/cctools/ld64/src/MachOWriterExecutable.hpp:2222:error:‘sprintf’wasnotdeclaredinthisscope  
  2.  
  3. /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中加入:

 

  1. PATH=~/iphone/toolchain/toolchain/pre/bin:$PATH 

 

5.2编译HelloToolchain

 

  1. cd~/iPhone/toolchain/app/HelloToolch 

 

执行IP=192.168.1.3makedeploy,其中IP是iPhone手机的IP地址,前提是已经越狱,并且通过ssh能够进行访问

在手机上可以看到HelloToolchain的应用,点击执行后在手机上显示出“HelloToolchain”

如果编译出错,进行如下处理:

 

  1. 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

 

  1. You'llneedldidtosignyourcode,youcangetitontheiPhonebydoing:  
  2.  
  3. $sudoapt-getinstallldid  
  4.  
  5. Here'showtogetitonLinux/OXS:  
  6.  
  7. First,downloadfromsaurik'swiththis:  
  8.  
  9. $wgethttp://www.linuxidc.com/system/systemfiles/2011/03/ldid-1.0.610.tgz  
  10.  
  11. Now,Unzipit:  
  12.  
  13. $tar-zxfldid-1.0.610.tgz  
  14.  
  15. Movetotheresultfolder:  
  16.  
  17. $cdldid-1.0.610  
  18.  
  19. Compileit:  
  20.  
  21. $g++-I.-outil/ldid{,.cpp}-xcutil/{lookup2,sha1}.c  
  22.  
  23. exportCODESIGN_ALLOCATE=.../toolchain/pre/bin/arm-apple-darwin9-codesign_allocate;ldid-Syourlib 

总结:

看完本文后,大家是不是也学会了在Ubuntu10.04上搭建iPhone环境了呢。好了,大家赶紧自己动手操作一下吧。更多有关linux系统的知识还有待于读者去探索和学习。

【编辑推荐】

  1. 关于Ubuntu LUA安装环境详解
  2. Ubuntu10.10如何取消交换设备?
  3. Ubuntu 11.10 beta1十大功能图解
  4. 教大家把Ubuntu界面改造成Windows7系统
  5. Ubuntu10.04上如何搭建iPhone开发环境? 【责任编辑:韩亚珊 TEL:(010)68476606】
责任编辑:韩亚珊 来源: 雨木林风
相关推荐

2011-08-30 10:37:27

UbuntuJAVA

2011-03-14 10:30:15

Ubuntu10.04LAMP

2011-08-29 15:23:11

Ubuntuapache

2011-08-29 14:40:04

UbuntuAndroid

2011-08-29 13:29:29

UbuntuQtE

2011-09-07 16:43:10

ubuntuwindowsXP

2012-02-14 09:33:14

Titanium MoTitaniumUbuntu 10.0

2011-03-21 16:37:57

2010-07-13 09:46:09

TomcatUbuntu 10.0

2011-09-07 10:58:19

UbuntuMySQL

2011-08-30 10:52:47

UbuntuOracle11g

2012-02-14 09:59:39

Titanium MoTitaniumMac

2011-08-22 18:03:32

Ubuntupdnsd

2011-06-29 10:06:27

Ubuntu 11.0Android

2010-03-16 10:52:20

Ubuntu10.04

2011-08-30 14:58:26

Ubuntu

2011-08-30 11:14:15

Ubuntu

2011-08-30 11:21:59

UbuntuGoogle

2011-08-02 17:37:01

IPhone开发 环境搭建

2011-07-08 16:02:24

iphone
点赞
收藏

51CTO技术栈公众号