Leopard中搭建iPhone toolchain环境并整合到XCode
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/
设置$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
直接删掉。
好了,这样,你的开发环境就搭建完了。真正全球第一款免复杂设置的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设备中运行。