正如上一个教程“你的第一个 iOS 应用”中所介绍的,你的大部分工作流程都是在 Xcode 工作区窗口里完成的。有个单独的 Organizer 窗口可以执行一些辅助任务,例如阅读文档、启用测试设备和准备提交应用到 App Store 等。
工作区窗口含有一个导航区域、一个编辑器区域以及一个实用工具区域。 在“你的第一个 iOS 应用”教程中,你已经利用过导航区域来选择要编辑的文件了。你也使用过编辑器区域来编辑源文件并设计用户界面部分。在实用工具区域里,你可以设置标签上的文字以及按钮上的标题。
定制你的工作区
你可以隐藏导航区域、编辑器、实用工具区域形成不同的组合方式。在“你的第一个 iOS 应用”教程中,你使用过工具条中的视图(View)选择器来隐藏和打开实用工具。把实用工具区域隐藏起来可以获得更大的代码编辑区域,而打开实用工具则可以方便查看并选择各种对象的属性等。
同时也有其他定制工作区的方法,例如使用 Safari 风格的标签页来实现多重的、特定工作流程的外观组合。例如,你可以用某一个标签页来查看 .h 文件即头文件,用另一个来查看对应的 .m 文件。
如何在标签页中打开源代码文件…
- 在工程导航栏中选中 HelloWorldViewController.h 文件,编辑器区域就会显示文件内容。
- 选择 View > Show Tab Bar。
- 选择 File > New > New Tab。
- 在工程编辑器里选中 HelloWorldViewController.m 文件,其内容便会在当前标签页的源代码编辑器里显示。
- 点选不同的标签页来浏览各个源文件。
- 要移除某个标签页,点按标签页上的关闭按钮即可。
你还可以打开多个工作区窗口。每个标签页或工作区窗口都可以独立定制。
如何在多个窗口中打开源代码文件…
- 在工程导航栏中选中 HelloWorldViewController.h 文件,编辑区域就会显示文件内容。
- 选择 File > New > New Window 来开启一个新工作区窗口。
- 在工程编辑器里选中 HelloWorldViewController.m 文件,其内容便会在新窗口中显示。
- 任何一个窗口都可以独立定制,例如显示包含视图选择器的实用工具区域,或选择 View > Hide Tab Bar 来隐藏标签栏。
在 iOS 模拟器中测试你的应用
当你需要测试应用或进行调试时,可以在 Mac 电脑上使用 iOS Simulator 模拟器。通过 iOS 模拟器测试,你可以确保应用运行是否正常并且运行结果是你所期待的那样。
Xcode 本身带有调试环境。当应用开始运行时,调试导航器就会显示堆栈跟踪,你可以在调试过程中展开或收起它来显示和隐藏堆栈帧显示。随着调试的进行,你还可以锁定某一个线程并跟踪该线程的执行。
如何在 Xcode 调试器中运行应用…
- 在你的 HelloWorld 工程中,在项目导航栏中选择 HelloWorldViewController.m 文件,代码编辑器窗口会显示文件内容。
- 定位到语句 self.label.text = greeting;}。
- 点按这行语句左侧的边栏部分,插入一个断点。
会出现一个蓝色的断点标志。
- 现在点按工具栏中的 Run 按钮,来构建并在 iOS 模拟器中运行 HelloWorld。
- 在文本框里输入“World”,完成后点选“Done”来关闭键盘。
- 点按“Hello”按钮。
断点会使 HelloWorld 运行到这里时停下来。工作区窗口自动显示在最前面,编辑器底部会显示调试区域。调试区域显示的就是本地变量以及它们目前的值。
在 iOS 设备上测试你的应用
尽管你可以在 iOS 模拟器上测试应用的基本运行情况,但你还应该在已和 Mac 电脑连接的设备上运行和测试。真实设备才是最终的测试环境,在开发者真实设备上的就能出现大部分将来可能在用户的设备上反映出的状态或问题。这类测试非常有必要,因为 iOS 模拟器只运行真实设备中的部分进程。最理想的情况是,在所有你希望运行的系统板本和设备型号上逐一进行真机测试。
如果你已加入 iOS 开发者计划,你现在就可以使用 Xcode 进行真机运行、测试和调试了。(本路线图的“安装工具”部分给出了如何加入 iOS 开发者计划的方法。)
要在设备上运行自己的应用,你首先要从苹果公司获得一份 iOS 开发证书。你的应用程序必须经过加密签名才可以在设备上运行,这份 iOS 开发证书就是用来给应用签名的。要获取证书,需要打开 Xcode 的 Organizer 窗口。
注意:如果你是通过 Xcode 文档管理器阅读下面的说明,请右键点按本页的任意位置并选择“Open Page in Browser”菜单项,本页将会在默认的浏览器中打开。在下一步中,当你点选设备管理器时,设备管理器页面就会出现而将本页替换掉。所以在浏览器中打开本页面能够方便接下来的操作。当你完成说明里的操作步骤之后,点按 Organizer 窗口工具条中的 Documentation 标签按钮,就可以在 Xcode 中回到本页面继续阅读。
如何在 Xcode 中获得你的开发证书…
- 点选 Window > Organizer。
- 点按 Devices。
- 点选 LIBRARY 下的 Provisioning Profiles。
- 点按窗口底部的 Refresh 按钮。
- 输入你的 Apple Developer 用户名和密码,然后点按 Log in。
登录你的帐号之后会弹出一个提示框,Xcode 会询问你是否要请求一份开发证书。- 点按 Submit Request 按钮。
开发证书便会被添加到你的钥匙串中,并在稍后添加到 iOS Team Provisioning Profile。可能会出现另一个提示,询问 Xcode 是否应该请求你的分发证书,这个证书在提交应用至 App Store 时需要用到。如果可以的话,请再次点按 Submit Request 按钮。
要在设备上运行应用,你还需要在设备中安装相关联的描述文件(provisioning profile)。你的应用要能运行必须确认你的身份(通过你的开发证书)和你设备的身份(通过列出它的唯一设备身份标识)。
如何在 Xcode 中认证你的设备…
- 将你的设备连接到 Mac 电脑。
- 打开设备管理器。
- 在 Devices 栏下面选中你的设备。
- 点按 Use for Development 按钮。
在首次向你的帐号添加设备 ID 时,Xcode 会根据通配符应用 ID、你的开发证书和设备 ID 来创建一份 iOS Team Provisioning Profile,并将其安装到你的设备中。
有了开发证书和描述文件之后,你就可以在设备上运行自己的应用了。在运行的时候还可以通过 Xcode 的调试和性能描述组件来观察运行状态。
如何在已连接的设备上运行应用…
- 在 Xcode 工作区窗口中点选 Product > Edit Scheme 打开方案编辑器。
- 在弹出的 Destination 菜单中点选你的设备。
当你将一台安装了有效描述文件的设备连接到 Mac 上时,这台设备的名称以及当前系统版本会出现在 Destination 菜单中。- 点按 OK 关闭方案编辑器。
- 点按 Run 按钮。
如果弹出对话框询问代码签名工具是否可以使用钥匙串中的钥匙为应用签名,请点选 Allow 或 Always Allow。
快速找到 Xcode 帮助信息
在应用的开发过程中,你会在 Xcode 中完成各种各样的工作。如果在某项任务中需要帮助,Xcode 可以提供针对工作流程的帮助,这些是可以直接通过 Xcode 界面访问到的。帮助信息帮括清晰、易行的步骤、视频或屏幕截图,精炼的描述语言能够让你更快地返回工作当中。
如何查看 Xcode 帮助信息…
- 在 HelloWorld 工程里,在工程导航栏选中 HelloWorldViewController.h 文件,源代码编辑器会显示其文件内容。
- 如果你正在 Xcode 文档管理器中阅读此页,请找到 Go Back(返回)按钮。当你完成后边的步骤时会需要点按这个按钮以便回到此页。
- 在源代码编辑器中任意位置点按右键。
在弹出的菜单中选择最后一项 Source Editor Help。- 选中 Source Editor Help 之后就会显示一系列常见源代码编辑器任务。
- 点选 Source Editor Help > Catching Mistakes with Fix-it 就可以在文档管理器中查看这篇帮助了。
- 点按其中的缩略图可以播放教学视频。
改进应用的性能
为了确保你的应用能够带来最好的用户体验,请打开 Xcode 中的 Instruments 应用来分析你的应用在 iOS 模拟器或真实设备中的性能。Instruments 会从运行中的应用里收集各类数据并已图表的形式呈现在时间轴上。
你可以收集应用的内存占用数据、磁盘活动、网络活动以及图形性能,以及其他一些状态数据。在这个集中的位置查看数据,你就能够分析出你的应用在不同的方面表现如何,并查找潜在的性能提升空间。你可以自动化应用用户界面元素的测试。你还可以对比不同时间运行应用后的数据来判断是否做出了有效的性能提升等。
如何开始分析应用的性能…
- 在 HelloWorld 工程中,点选 Product > Perform Action > Profile Without Building。
- 在左侧的 iOS 模拟器下边,点选 All 来查看所有可用的跟踪模板。
- 点选 Leaks 模板并点按 Profile。
Instruments 应用就会随 iOS 模拟器运行 HelloWorld 而自动启动了。- 在 HelloWorld 文本框中输入你的名字,点按 Done 按钮关闭键盘,然后点按 Hello。
- 点选 iOS Simulator > Quit iOS Simulator 来停止记录性能数据。
- 点选 Instruments 面板中的 Allocations 来查看 HelloWorld 的内存分配情况。
举个例子,跟踪面板会随着内存的每一次分配而产生变化,你可以看到应用运行中内存分配的频率。(如果在跟踪面板中发现有一个明显突起的位置,就说明这里可能存在潜在的瓶颈问题,你要么可以通过预先分配内存来缓和一下,要么可以先不处理其他内存块。)
管理应用的版本
如果发现修改了某些代码之后出了问题,利用 Xcode 快照(snapshot)功能就可以轻松恢复工程到之前的状态,甚至已删除的工程也可以。快照会保存当前工程的所有状态到磁盘上,以备之后进行恢复。Xcode 的工程管理器中列出了所有可用的快照。
你可以随时手动创建快照,也可以让 Xcode 根据场合自动创建快照,例如每次构建之前或通过查找并替换修改代码之前等。
如何在你的工程中创建和恢复快照…
- 在 HelloWorld 工程开启的状态下,点选 File > Create Snapshot。
- 输入此快照的名称和描述。
- 点按 Create Snapshot。
此快照就会出现在工程管理器中了。要恢复到此快照,请点选 File > Restore Snapshot。
源代码控制管理(SCM) 能够提供比快照更加细致入微的变更跟踪管理。(如果你在团队中与他人协同工作,源代码控制管理还能帮你提高团队效率。)SCM 系统会在磁盘中对每个文件保存多个版本,并存储各个文件各个版本的元数据到 SCM 仓库中。
Xcode 支持两种流行的 SCM 系统:Git 和 Subversion。Xcode 包含了一个版本编辑器,无论使用哪种 SCM 系统都可以轻松对比保存在仓库中文件的不同版本。如果你发现代码中出现了漏洞,则可以将最新的版本和之前的某个正常运行的版本拿来比较,让你捉出产生问题的“臭虫”。
分发和发布应用
Xcode 能够让你轻松地将尚未正式发布到 App Store 的应用分享给测试者们。要分发应用,请在方案编辑器中创建一个应用归档。然后就可以使用 Xcode 的归档管理器来让测试者们分享你的应用。
当你准备正式发布应用的时候,可以先使用归档管理器来评估一下你的应用能否达到 App Store 审核的标准。这项评估能够通过则可以保障正式审核过程尽可能地快速。然后就可以在 Xcode 正式向 App Store 提交你的应用了。
在本路线图稍后的文章“准备提交到 App Store”里,会更加详细地向你讲解关于分发和发布应用的过程。