Leopard中搭建iPhone toolchain环境并整合到XCode是本文要介绍的内容,网上搭建iPhone开放开发环境的文章已经不少了。本文参考了不少资料,详细说明如何成功在Leopard中搭建一个完整的开发环境并整合XCode进行iPhone源生程序的开发。
在XCode中整合toolchain开发环境和苹果官方的iPhone SDK并不冲突,你可以在同一个XCode中既建立toolchain的开发工程,也可以建立官方的iPhone SDK工程。本文在Leopard 10.5.2,XCode 3.1 Beta 3(随iPhone SDK Beta3提供),iPhone OS 1.1.4测试通过。
准备工作
请确认操作系统为Leopard 10.5.2。
请确认XCode已经安装。最好安装最新的官方XCode 3.1 Beta。手中最好是有iPhone或者iPod Touch,已经jailbreak。获取toolchain源码
打开一个terminal窗口,随便建立一个目录
- mkdir
- iphoneenv
- cd
- iphoneenv
后面的操作都在这个目录中进行,只需复制下文文字框中的内容,贴到terminal窗口执行即可。
获取源码
- svn
- co http://llvm.org/svn/llvm-project/llvm/trunk llvm-svn -r
- 42498
- pushd llvm-svn
- ./configure –enable-optimized
- make
- ENABLE_OPTIMIZED=1
- sudo make install
- LLVMOBJDIR=`pwd`
- popd
获取iphone-dev SVN代码库
- svn checkout http://iphone-dev.googlecode.com/svn/trunk/
- iphone-dev
- pushd iphone-dev
建立一个保存toolchain的目录。
- sudo mkdir
- /usr/local/arm-apple-darwin
- 编译odcctools
- mkdir -p
- build/odcctools
- pushd build/odcctools
- ../../odcctools/configure
- –target=arm-apple-darwin –disable-ld64
- export INCPRIVEXT="-isysroot
- /Developer/SDKs/MacOSX10.4u.sdk"
- make
- sudo make install
- popd
获取iPhone中的框架和头文件
获取这个iPhone的镜像有很多办法,这里介绍几种:
最省事的办法(如果手头没有iPhone或是没有wi-fi):在google搜索iphone_image,找到了就直接下载,解压缩。麻烦点的办法(手头有jailbreak并安装了installer的iPhone或者iPod Touch):
如果你家里或者单位有wi-fi,而且iPhone已经连上w-ifi,直接在iPhone的Installer里找到BSD Subsystem和OpenSSH并安装,然后用scp把iPhone里面从根目录开始的所有子目录的所有的文件拷贝出来。
或者在installer里安装AFPd,然后用Finder打开afp://你的iphone的ip地址,用户名用root, 密码用alpine,把里面的所有文件直接拽出来。
详细方法不介绍了,相信你一定能搞定。
复制镜像
假设你把这个镜像里的所有文件都放在/iphone_image目录,那么执行下面操作(不要离开terminal的当前目录):
- sudo
- mkdir /usr/local/share/iphone-filesystem
- sudo cp -Rp /iphone_image/*
- /usr/local/share/iphone-filesystem/
#p#
设置$HEAVENLY的环境变量
- HEAVENLY=/usr/local/share/iphone-filesystem
- pushd
- include
- ./configure –with-macosx-sdk=/Developer/SDKs/MacOSX10.4u.sdk
- sudo
- bash install-headers.sh
- popd
安装csu
- mkdir -p
- build/csu
- pushd build/csu
- ../../csu/configure
- –host=arm-apple-darwin
- sudo make install
- popd
- configure和make LLVM-GCC
- mv llvm-gcc-4.0-iphone/configure llvm-gcc-4.0-iphone/configure.old
- sed 's/^FLAGS_FOR_TARGET=$/FLAGS_FOR_TARGET=${FLAGS_FOR_TARGET-}/g'
- llvm-gcc-4.0-iphone/configure.old > llvm-gcc-4.0-iphone/configure
- sudo ln -s /usr/local/arm-apple-darwin/lib/crt1.o
- \/usr/local/arm-apple-darwin/lib/crt1.10.5.o
- mkdir -p build/llvm-gcc-4.0-iphone
- pushd build/llvm-gcc-4.0-iphone
- export FLAGS_FOR_TARGET="-mmacosx-version-min=10.1"
- sh ../../llvm-gcc-4.0-iphone/configure –enable-llvm=`llvm-config –obj-root`
- \
- –enable-languages=c,c++,objc,obj-c++ –target=arm-apple-darwin
- –enable-sjlj-exceptions \
- –with-heavenly=$HEAVENLY –with-as=/usr/local/bin/arm-apple-darwin-as \
- –with-ld=/usr/local/bin/arm-apple-darwin-ld
- make LLVM_VERSION_INFO=2.0-svn-iphone-dev-0.3-svn
- sudo make install
- popd
- popd
这样,专门用来编译iPhone的toolchain gcc就编译完了,文件位置在:
- /usr/local/bin/arm-apple-darwin-gcc
整合XCode
接下来,整合XCode:
下载XCode模板。解压缩,把
- iPhone
- UIKit Skeleton Application
这个文件夹复制到
- /Developer/Library/XCode/Project
- Templates/Application/
好了,打开XCode,新建一个项目,你会发现列表里已经出现了
- iPhone UIKit
- Skeleton Application
这样一个模板(不在iPhone OS分类里而是在Mac OS X分类)直接创建项目,取个名字,
直接编译,成功。
建议你使用本文的方法编译toolchain,而不是直接下载别人编译好的安装包,这样问题会少很多。如果你下载了其他地方的例子,可能需要修改Makefile才可以编译成功。尤其是google code的iPhone代码。
比如:
你需要把
- CC=/usr/local/arm-apple-darwin/bin/gcc
- 改成:
- CC=/usr/local/bin/arm-apple-darwin-gcc -v
- 把
- CC=/usr/local/arm-apple-darwin/bin/g++
改成:
- CXX=/usr/local/bin/arm-apple-darwin-g++
把LDFLAGS里的
- -Wl,-syslibroot,/usr/local/arm-apple-darwin/heavenly
直接删掉。
#p#
好了,这样,你的开发环境就搭建完了。真正全球第一款免复杂设置的iPhone ToolChain SDK 开发编译环境,一键式安装,立即开始使用,无须下载Toolchain源码进行复杂设置和变异,免除各种问题困扰。
软件主页:http://item.taobao.com/item.htm?id=5671586706
做过Jailbreak系统iPhone开发的软件开发人员都知道,想要配置一套传统的iPhone ToolChain 。
SDK编译开发环境要面对非常大的困难,并付出相当多的精力,克服各种各样的编译错误,最终才能完成;如果要更换计算机和系统,重复的工作并不能减少错误发生的可能,这一切都严重影响开发者的精力和效率。
除此之外,传统的iPhone ToolChain SDK无法在Snow Leopard(雪豹)MAC系统中编译部署,使得很多高版本系统用户无法使用iPhone
ToolChain SDK进行iPhone软件开发。
现在好了,SJ99推出了免配置的iPhone ToolChain
SDK开发包,开发者再也不用手工下载各种繁多的底层模块自行编译部署了,一键式安装瞬间即可完成,开发者立即可以开始iPhone软件本身的设计和研发工作,大大节省了时间和精力。 有了这套开发包,您可以在MAC系统中开发基于iPhone
ToolChain第三方开发库的应用程序,并将软件部署到JailBreak的iPhone设备中运行。
小结:Leopard中搭建iPhone toolchain环境并整合到XCode的内容介绍完了,希望本文对你有所帮助!
【编辑推荐】