本节书摘来自异步社区《iOS 9应用开发入门经典(第7版)》一书中的第1章,第1.3节运行iOS应用,作者 【美】约翰 雷(John Ray),更多章节内容可以访问云栖社区“异步社区”公众号查看
1.3 运行iOS应用
获得Apple开发人员资格、加入付费的开发人员计划、下载并安装iOS开发工具后,您仍无法在设备上运行您编写的应用程序!为什么呢?因为您还没有创建开发供应配置文件(provisioning profile)。
在很多开发指南中,都在开始开发后才介绍这个步骤。在我看来,编写应用程序后您将希望能马上在设备中运行它。为什么?因为看到编写的代码在自己的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.8所示,再单击Add按钮。完成后关闭Preferences窗口。
接下来,确保你的设备未锁定且连接到了计算机,再选择菜单Window>Devices。窗口最左栏的Devices部分应列出了您的iOS设备,如图1.9所示。在这里看到您的设备后,就说明准备就绪了!当您在iDevice上运行应用时,Xcode将自动为您创建所有的供应配置文件和证书。如果没有看到你的设备,请确认你使用的是官方的Apple Lightning电缆和支持的最新iOS版本。
图1.9 打开Xcode Devices窗口,并查找您的设备
在后台
您可能想知道在设备上运行应用时发生的情况,这里大致地说一下。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就会透明地将配置文件上传到这台设备。
注意:
只有加入了付费计划的开发人员才能访问成员中心并直接修改其供应配置文件。如果没有加入付费的开发人员计划,你将使用Xcode来自动进行配置并部署到自己的设备。
注意:
加入Apple Mac开发人员计划时,也将创建并维护类似的配置文件,用于将应用程序发布到Mac App Store。最大的差别在于,不同于iOS应用,可在任何计算机上运行Mac应用程序。在Mac开发人员计划中,证书用于将应用程序发布到Mac App Store以及测试Apple托管的服务(如Game Center和iCloud)集成。在iOS开发中,要在除iOS模拟器之外的其他设备上运行软件,必须安装合适的证书。
提示:
配置好一台用于开发的计算机后,就可导出签名身份和供应配置文件,进而轻松地配置其他工作站。为此,可选择菜单Xcode>Preferences打开Xcode首选项对话框,再单击工具栏中的Accounts图标。然后,单击账户列表底部的齿轮图标,并选择Export Accounts。这个选项将所有的开发配置文件和证书导出为一个包;还有一个Import Accounts选项,用于导入开发配置文件和证书。
1.3.3 启动应用
为iOS开发做好准备后却没有任何回报看起来不值得,不是吗?为了对您所做的工作进行测试,下面尝试在您的iOS设备上运行一个应用程序。如果还没有下载项目文件,现在是访问http://teachyourselfios.com 并下载归档的绝佳时机。
提示:
如果您觉得心里没底,http://teachyourselfios.com 提供了一个教程,介绍了Xcode源代码控制方面的基本知识,包含如何连接到一个代码仓库,其中提供了本书所有示例项目的最新版本。
下面来运行这个应用程序。
1.在文件夹Hour 1/Projects中,选择文件夹iPad或iPhone,再打开文件夹Welcome,然后双击Welcome.xcodeproj在Xcode中打开一个简单的应用程序。打开该项目后,Xcode界面应该如图1.10所示。如果不完全相同,也不要紧。
图1.10 打开的项目应类似于这样。如果不完全一样,也不用担心
提示:
打开项目时,如果使用的Xcode版本比用来创建它的版本新,可能提示你对项目进行升级——根据最新的Swift语法对代码进行转换。如果出现这种情况,请让Xcode进行必要的修改。很可能不会做任何修改。使用每个新的Xcode beta版时,我们看到了这种提示;但还未遇到本书的iOS 9项目需要做必要修改的情况。
2.确保将您的iOS设备连接到了计算机。如果你没有iOS设备,请跳过这一步。
3.从Xcode窗口左上角的下拉列表Scheme选择您的iOS设备,如图1.12所示。这告诉Xcode生成项目时将其安装到该设备,而不是在模拟器中运行。如果您没有iOS设备,请根据您使用的项目版本选择相应的模拟器。
通常只能看到可运行当前应用程序的模拟器(iPhone Simulator或iPad Simulator),但在图1.11中,显示了所有的模拟器。当您使用的是针对iPhone的应用程序(它可在iPhone和iPad上运行)或通用应用程序(这将在本书后面更详细地介绍)时,将出现这种情况。这个屏幕截图是使用该项目的iPhone版本截取的,因此能够看到所有的模拟器。
4.确保您的设备已解锁,再单击Xcode工具栏左端的Run按钮,几秒钟后,该应用程序将安装到设备并启动。图1.12显示了该应用程序在4.7英寸的iPhone(iPhone 6)中的样子。
5.单击Xcode工具栏中的Stop按钮退出该应用程序。现在可以退出Xcode了,本章不会再使用它。
图1.12 祝贺您安装了自己创建的第一个iOS应用程序
当您单击Run按钮时,应用程序Welcome将安装到您的iOS设备并在其中启动。它将一直保留在该设备中,直到您手工将其删除。为此,只需按住Welcome图标直到它开始摇摆,然后像删除其他应用程序那样将其删除。开发证书将在120天后过期,到时使用该开发证书安装的应用程序也将停止工作。
提示:
在首次使用新Apple ID的设备上运行应用程序(或开发账户有问题)时,Xcode可能发出有关设备配置的警告。
如果你看到这样的警告,只需在提示时单击Fix,所有的警告和错误都将有望消失。
{查看供应配置文件!} 在您的设备上运行应用后,便可查看其中安装的供应配置文件。为此,可选择菜单Window>Devices打开Devices窗口,再右击您的设备并选择Show Provisioning Profiles。这将打开一个对话框,其中包含为您自动创建的iOS Team Provisioning Profile,如图1.13所示。
{且慢,我有多台iOS设备!!} 前面讨论了如何配置单台用于测试的设备,但如果要将应用程序安装到多台设备,该怎么办呢?没有问题,只需将其他设备连接到计算机,并运行应用程序!这将自动配置它们。
如果使用的是付费的开发人员账户,而不是免费的Apple ID账户,Apple允许您在线分发应用程序以便进行测试,而无需使用Xcode来安装它们。在这种情况下,你可在1年内注册100台不同的设备,让它们能够运行你的应用程序。
图1.13 查看在设备上安装的供应配置文件