本节书摘来自异步社区《iOS 8应用开发入门经典(第6版)》一书中的第1章,第1.3节运行iOS应用,作者 【美】John Ray(约翰 雷),更多章节内容可以访问云栖社区“异步社区”公众号查看
1.3 运行iOS应用
iOS 8应用开发入门经典(第6版)
获得Apple开发人员资格、加入付费的开发人员计划、下载并安装iOS开发工具后,您仍无法在设备上运行您编写的应用程序!为什么呢?因为您还没有创建开发供应配置文件(provisioning profile)。
警告:
只有付费的开发人员账户能够执行下面的步骤。如果您只有免费的开发人员账户,也不用烦恼。在您为成为付费成员做好准备前,可使用iOS模拟器来测试自己开发的应用程序。在这种情况下,请直接跳到“启动应用”一节。
在很多开发指南中,都在开始开发后才介绍这个步骤。在我看来,编写应用程序后您将希望能马上在设备中运行它。为什么?因为看到编写的代码在自己的iPhone或iPad上运行太爽了!
1.3.1 什么是开发供应配置文件
当前,Apple对iOS开发过程进行了控制,禁止开发小组将软件随便发布给任何人。其结果是,通过一个令人迷惑的过程将有关您(任何开发小组成员)和应用程序的信息加入到供应配置文件中。
开发供应配置文件标识了开发应用程序的开发人员,并包含应用程序ID以及将运行该应用程序的每台设备的唯一设备标识符。这种供应配置文件只能用于开发过程。为通过App Store发布应用程序或通过ad hoc发布给一组测试人员(或朋友)做好准备后,需要创建一个发布配置文件(distribution profile)。由于您刚涉足iOS开发,因此现在还不需要发布配置文件。
1.3.2 配置用于开发的设备
以前,创建仅用于开发过程的供应配置文件令人沮丧且耗时,这个过程是在iOS开发网站的Provisioning Portal部分完成的。在最新的Xcode版本中,Apple极大地简化了这个流程,使其非常简单,您只需将Apple ID加入Xcode,就可运行应用。
首先,启动Xcode,并选择菜单Xcode>Preferences加载首选项。在窗口Preferences中,单击按钮Accounts。单击左下角的按钮+,并从出现的菜单中选择Add Apple ID。在出现的对话框中,输入您的Apple ID,如图1.9所示,再单击Add按钮。完成后关闭Preferences窗口。
接下来,确保将设备连接到了计算机,再选择菜单Window>Devices。窗口最左栏的Devices部分应列出了您的iOS设备,如图1.10所示。在这里看到您的设备后,就说明准备就绪了!当您在iDevice上运行应用时,Xcode将自动为您创建所有的供应配置文件和证书。
在后台,您可能想知道在设备上运行应用时发生的情况,这里大致地说一下。Xcode将向iOS developer portal添加一个唯一的标识符。该标识符标识了您的身份,并用于对您生成的应用程序进行数字签名,这被称为签名身份(signing identity)。它还向Apple注册您的设备,使其能够运行您开发的应用程序(以及iOS测试版)。
Xcode将继续与Apple通信,以创建开发配置文件和唯一的应用程序ID,其中开发配置文件名为iOS Team Provisioning Profile。应用程序ID标识了iOS设备密钥链的共享部分,而您的应用程序有权访问这部分。
密钥链是iOS设备的一个安全信息存储区,可用于存储密码和其他重要信息。大多数应用程序都不共享密钥链空间,因此不能共享受保护的信息。然而,如果多个应用程序都使用相同的应用程序ID,它们将能够共享密钥链数据。
就本书而言,没有理由不让其中的示例应用程序共享一个应用程序ID,因此让Xcode为您生成ID即可。实际上,Xcode将创建一个“通用”应用程序ID,适用于您使用Team Provisioning Profile创建的每个应用程序。
最后,Apple的服务器将根据这些信息以及连接的iOS设备的唯一标识符,给Xcode提供一个完全的供应配置文件。这样,首次在该iOS设备上运行应用时,Xcode就会透明地将配置文件上传到这台设备。
注意:
加入Apple Mac开发人员计划时,也将创建并维护类似的配置文件,用于将应用程序发布到Mac App Store。最大的差别在于,不同于iOS应用,可在任何计算机上运行Mac应用程序。在Mac开发人员计划中,证书用于将应用程序发布到App Store以及测试Apple托管的服务(如Game Center和iCloud)集成。在iOS开发中,要在除iOS模拟器之外的其他设备上运行软件,必须安装合适的证书。
提示:
配置好一台用于开发的计算机后,就可导出签名身份和供应配置文件,进而轻松地配置其他工作站。为此,可选择菜单Xcode>Preferences打开Xcode首选项对话框,再单击工具栏中的Accounts图标。然后,单击账户列表底部的齿轮图标,并选择Export Accounts。这个选项将所有的开发配置文件和证书导出为一个包;还有一个Import Accounts选项,用于导入开发配置文件和证书。
1.3.3 启动应用
为iOS开发做好准备后却没有任何回报看起来不值得,不是吗?为对您所做的工作进行测试,下面尝试在您的iOS设备上运行一个应用程序。如果还没有下载项目文件,现在是访问http://teachyourself-
iOS.com并下载归档的绝佳时机。
提示:
如果您觉得心里没底,http://teachyourselfiOS.com提供了一个教程,介绍了Xcode源代码控制方面的基本知识,包含如何连接到一个代码仓库,其中提供了本书所有示例项目的最新版本。
下面来运行这个应用程序。
1.在文件夹Hour 1/Projects中,选择文件夹iPad或iPhone,再打开文件夹Welcome,然后双击Welcome.xcodeproj在Xcode中打开一个简单的应用程序。打开该项目后,Xcode界面应该如图1.11所示。
2.确保将您的iOS设备连接到了计算机。
3.从Xcode窗口左上角的下拉列表Scheme选择您的iOS设备,如图1.12所示。这告诉Xcode生成项目时将其安装到该设备,而不是在模拟器中运行。如果您没有加入付费的开发人员计划,请根据您使用的项目版本选择相应的模拟器。
通常只能看到可运行当前应用程序的模拟器(iPhone Simulator或iPad Simulator),但在图1.12中,显示了所有的模拟器。当您使用的是针对iPhone的应用程序(它可在iPhone和iPad上运行)或通用应用程序(这将在本书后面更详细地介绍)时,将出现这种情况。这个屏幕截图是使用该项目的iPhone版本截取的,因此能够看到所有的模拟器。
4.确保您的设备已解锁,再单击Xcode工具栏左端的Run按钮,几秒钟后,该应用程序将安装到设备并在其中启动。图1.12显示了该应用程序在iPhone 6中的样子。
5.单击Xcode工具栏中的Stop按钮退出该应用程序。现在可以退出Xcode了,本章不会再使用它。
当您单击Run按钮时,应用程序Welcome将安装到您的iOS设备并在其中启动。它将一直保留在该设备中,直到您手工将其删除。为此,只需按住Welcome图标直到它开始摇摆,然后像删除其他应用程序那样将其删除。开发证书将在120天后过期,到时使用该开发证书安装的应用程序也将停止工作。
提示:!
如果您试图在开发账户中没有配置的iOS设备上运行应用,Xcode将尝试为您修复问题。为此,只需在提示时单击Fix,警告将有望消失。
查看供应配置文件
在您的设备上运行应用后,便可查看其中安装的供应配置文件。为此,可选择菜单Window>
Devices打开Devices窗口,再右击您的设备并选择Show Provisioning Profiles。这将打开一个对话框,其中包含为您自动创建的iOS Team Provisioning Profile,如图1.14所示。
且慢,我有多台iOS设备!
前面讨论了如何配置单台用于测试的设备,但如果要将应用程序安装到多台设备,该如何办呢?没有问题,只需将其他设备连接到计算机,并运行应用程序!这将自动配置它们。
Apple允许您的账户在1年之内包含100台不同的设备,因此如果要进行大量的内部开发测试,务必明智地注册设备。