【IT168 技术文档】这篇文章将告诉你怎样在Windows XP SP2操作系统上搭建iPhone 2.x开发环境。
在开始之前,请先准备好
请确保你的iPhone已经越狱,并且安装了openSSH和ldid(均可通过Cydia获得)。
如果你觉的这篇文章中的步骤太麻烦,你可以直接下载安装了iPhone Tool Chain的虚拟机。
虽然iPhone SDK只能运行在Mac OS Leopard上,但是其使用的iPhone Tool Chain(工具链)是基于开源的gcc的。所以经过国外iphone-dev team的添加和修改,我们现在可以在非Mac OS平台上安装iPhone Tool Chain。所谓iPhone Tool Chain,就是一组工具(包括一个交叉编译器,链接器等等),这组工具可以将我们编写的Objective-C代码编译成可以在iPhone上运行的可执行文件。
我们可以获取的是iPhone Tool Chain的源代码,我们需要将源代码在操作系统中进行编译,这样编译出来的iPhone Tool Chian才可以运行在特定的操作系统上。大致示意图如下
所以第一步就是要在Windows XP下搭建编译iPhone Tool Chain的环境。
1.搭建Windows XP下的编译环境
在这里我们需要使用到Cygwin,Cygwin可以在Windows下创建类似UNIX的环境。
Cygwin安装程序(setup.exe) cygwin_packages纳米盘下载RayFile下载QQ文件中转站(提取码 7928ae3f)
将cygwin_packages解压到桌面上。双击运行刚才下载的setup.exe。点击Next,直到我们看到如下界面,选则Install From Local Directory选项
点击Next,出现选择安装目录的界面,为了使问题尽量保持简单,请保正Root Directory中的路径为c:\cygwin。其他选项保持不变
点击Next,使Local Package Directory指向我们解压到桌面上的cygwin_packages文件夹。
点击Next,安装程序会开始扫描我们刚才指定的路径,并返回一个包列表。首先展开Devel项,你会看见如下列表
选中Devel项下的所有包,点击每个包左侧的Skip以选中该包。这里有一点需要注意,当你选中一个包时,一些与该包有依赖关系的包也会同时选中。全部选中后的列表应该如下图所示
接下来使用同样的方法,展开Net项,并且选择Net项下的所有包。
继续点击Next,就进入了安装阶段,待安装完成,编译环境就搭建好了。
2.获取iPhone Tool Chain源代码: iPhone Tool Chain源代码纳米盘下载RayFile下载QQ文件中转站(提取码 a789fe09)
将iphone-2.0-toolchain.tgz压缩包拷贝至c:\cygwin\home\yournamec:\cygwin\home\yourname 请将yourname替换为自己的用户名。(你需要首先运行一次Cygwin,Cygwin才会在c:\cygwin下创建home目录), 将压缩包解压到当前目录,解压完成后,请确保你的目录结构如下所示,否则会在编译时出现问题。
接下来将iphone-2.0-toolchain目录下的make-toolchain文件删除,替换成新的make-toolchain。
3.提取iPhone固件中的文件。
在编译iPhone Tool Chain的过程中需要使用iPhone固件中的三个文件夹,分别是 /System/Library/Frameworks
/System/Library/PrivateFrameworks
/usr/lib 你可以在下面的链接中下载已经提取好的文件。(本文提供的下载文件提取自iPhone1,1_2.0_5A347_Restore.ipsw,从该版本固件中提取的文件可以成功编译出iPhone Tool Chain,其他版本的固件提取出的文件我没有测试过是否可以正确编译) iphone-sys纳米盘下载RayFile下载QQ文件中转站(提取码 454e80a8) 请将压缩包中的Framework和PrivateFramework两个文件夹拷贝到 c:\cygwin\home\yourname\iphone-2.0-toolchain\iphone-fs\System\Library
将lib文件夹拷贝到 c:\cygwin\home\yourname\iphone-2.0-toolchain\iphone-fs\usr
拷贝完成后,请确保iphone-fs中的目录结构如下所示
到此为止,我们的准备工作就完成了。 4.编译iPhone Tool Chain 双击桌面上的Cygwin图标,在打开的命令行(本文所说的命令行均是指Cygwin命令行,而不是Windows自带的cmd命令行)窗口里输入 cdiphone-2.0-toolchain
./make-toolchain
命令行会停顿大约3分钟,接着就会输出大量编译信息,这个过程会持续大约两个小时。 如果你发现命令行停止滚动,并且出现了类似下图中的几行信息,那恭喜你,你已经编译成功了。
5.编译iPhone程序 有了iPhone Tool Chain,我们就可以编译iPhone程序了,在命令行里输入 cd~/iphone-2.0-toolchain/examples/GUI/HelloWorldiPhone
这个目录下存放着一个简单的iPhone程序的源码,接着我们在命令行输入 make
待命令行停止滚动之后,编译就完成了,在HelloWorldiPhone目录下会生成一个HelloWorld.app文件夹,接下来我们要做的就是将这个文件夹拷贝进iPhone。 6.运行程序 使用SCP连接到iPhone,将HelloWorld.app拷贝至iPhone的/Applications目录下,接着在SCP终端中输入 chmod-R755/Applications/HelloWorld.app
ldid-S/Applications/HelloWorld.app/HelloWorld
如果不使用ldid给可执行文件打上一个签名,那么程序一启动就会被系统终止(kill)。最后将iPhone重启或者respring一下,就可以看见我们的程序图标了(一个问号),点击运行,界面如下图所示
本文的编译方法来自IBM developWorks的一篇文章:使用Eclipse CDT 编写本机iPhone应用程序。
|