运行你的Application
当你做好准备调试你的application,你首先是通过Xcode的Build来构建你的系统,如果Build没有错误的话,你有两种方式可以运行你的Application:iPhone Simulator和Device
iPhone SDK包括了两个SDK系列:iPhone Simulator SDK和iPhone Device SDK。
iPhone Simlulator SDK:通过此SDK来Build的application运行在iPhone Simulator下。
iPhone Device SDK:通过次SDK来Build的application运行在Device下。
下面几个步骤是你运行你的Application需要做的:
- 设置application的目标iPhone OS版本
- 设置Active SDK
- 设置使用的Build配置
- Build你的application
- 运行你的application
下面的文字稍微详细点的描述了以上几个步骤。
-
设置application的目标iPhone OS版本
每一个发布的iPhone OS(包括与其相对应的iPhone SDK)都包括了它以前的版本所不提供或支持的一些特性。当一个新的iPhone OS发布的时候,有的用户会直接升级到最新的版本,而另外的用户会在等待一段时间之后才会升级到最新的版本。你可以根据你的application的需要 和你的用户的情况选择下面两个策略中的一个:
- 以最新的iPhone OS为目标发布。意味着你可以使用最新的iPhone OS版本的一些特性和优点,但也许这样做也很接近只能让很少一部分用户能在他们的设备上安装你的application,因为你的application 并不能运行在他们那些没有升级到最新版本iPhone OS的设备上。
- 以以前的iPhone OS为目标发布。这样做能让你所发布的application有一个比较大的用户基数,因为这样发布的application不光能运行在最新版本的OS 的设备上,也能运行在以前稍早的OS版本的设备上,但是这样做的缺点在于你将不能使用最新版本的iPhone OS所提供的一些最新的特性和优点。
你可以在你的project的info窗口中General一项中的Base SDK for ALL Configurations这一栏弹出的菜单中设置的你默认的目标iPhone OS版本。
你还可以在project的info窗口的Build一项中的Deployment的iPhone OS Deployment Target一项中选择不同的设置来针对不同的Build配置(比如发布或者调试),这里的设置会覆盖基本的SDK设置。
当你Build你的application后,你的目标iPhone OS 版本会在Info.plist文件中的MinimimOSVersion的内容中反应出来。
当你的application发布到App Store之后会根据MiniminOSVersion的属性来判断你的application是针对哪个版本的iPhone OS发布的。
-
设置Active SDK
Active SDK的设置告诉Xcode下次你运行Build命令的时候用哪个SDK来Build你的application和选择是运行在iPhone Simlulator还是Device上。
下面两个地方可以设置Active SDK:
- Project菜单的Set Active SDK子菜单中
- 在项目窗口中的工具栏上的Overview弹出菜单中
当你在iPhone Simulator中调试好你的application之后,你还必须在一个基于iPhone OS的Device上调节你的application,以取得在实际应用中较好的性能,但你必须成为官方认证的iPhone Developer Program成员,详细情况会在后面的文章中专门说明。
当你active SDK的设置从iPhone Simlulator改为iPhone Device SDK时,你需要注意的是二者虽然都是基于Mac OS的,但是一些framework会在不同的环境中存在差异,比如ApplicationServices framework。
如果你的代码直接导入了iPhone Simulator SDK的头文件──在<Xcode>/Platforms/iPhoneSimulator.platform/SDKs/…/usr /include目录下的头文件,那么你在把active SDK从iPhone Simlulator改为iPhone Device SDK时可能会遇到一个build错误。你可能需要用判断语句来#import或者#include合适的头文件来应对不同环境。
-
设置使用的Build配置
当你开始一个build你的application的过程的时候,Xcode通过active build configuration来build你的application,你可以通过下面两个方法来设置你的active build configuration:
- 在Project菜单现面的Set Active Build Configuration子菜单中
- 在 在项目窗口中的工具栏上的Overview弹出菜单中
-
Build你的application
如果要开始Build你的application,选择Build菜单下的Build项。
状态栏会显示Build成功或者出现的错误及警告。你可以在文本编辑器或者project窗口中浏览错误及警告的信息。
基于iPhone OS的device支持ARM和Thumb两种指令集。Xcode使用Thumb做为默认的指令集,因为使用Thumb相对于ARM能够显著的减少35%的代码量。但如果你的application广泛的应用到了浮点运算的代码的话ARM也许能带来比Thumb更好的性能。
你可能遇到的一个比较常见的build错误是由于application ID的冲突引起的错误。冲突来自于你提供的profile(通过程序入口取得的)和你的application的CFBundleIdentifier属 性定义的ID的不同。为了避免这个错误,请确保你的profile中的application ID(App ID)设置成com.<organization_name>.*,而你的application的CFBundleIndetifier属性值为com.<organization_name>.<application_name>。
-
运行你的application
当你运行你的application时,Xcode会把它安装到iPhone Simulator或者device(由acitve SDK决定)并运行它。
如果你有多个device连接到你的计算机上,你可以指定谁来安装并运行这个application,通过Project > Set Active Executable 菜单来设置。
运行你的application,选择Run > Run 或者 Run > Debug。