第十章:在真机上运行
在这一章节,你将学会如何在真机上运行你的App,你将学会如何创建证书、注册你的测试设备,设置你的App ID和provisioning profiles。这章节将介绍和练习部分合二为一,所以在看这一章节时,要确保打开Xcode,边看边操作。
真机上测试App需要注册开发者账户(Apple Developer account)(现在苹果已经允许开发者没有帐号也能在真机上运行了,作者写这本书的时候,苹果的政策没有开放。),将App发布到App Store上也需要这个账户。Apple Developer Program为开发者提供了最新版本的iOS和OSX,注册开发者帐号可以观看WWDC中的视频。WWDC全称Worldwide Developer Conference,每年在San Francisco举行。苹果公司会在WWDC上发布新的产品和软件,注册开发者还能获得专门的技术支持,每年需要缴纳99美元,这将是你一笔划算的投资。
此章节接下来的部分需要注册开发者账户,你可以在http://developer.apple.com/programs/ios.上注册账户 如果你是在校学生,苹果提供了iOS Developer University Program免费项目,更多细节可以在这里找到http://developer.apple.com/programs/ios/university
可以用你的名字或者公司名称来注册开发者账户,注册在你个人名下就是个人开发者账户,注册在公司名下需要公司的邓白氏编码和可证明公司的合法文件。邓白氏编码是你公司独一无二的编码,你可以在https://developer.apple.com/support/ios/ D-U-N-S.php这个网站上了解更多的信息。在大多数情况下,注册成个人开发者会更简单一些,当你需要的时候,可以把个人开发者账户转换成公司账户。更多信息,请见https:// developer.apple.com/programs/。
Page 257
完成注册后,就可以进入Member Center。Member Center中提供了苹果开发者需要的工具、更新,在https://developer.apple.com/member center/注册登录Member Center。Member Center中有部分叫做Certifications, Identifiers, and Pro‐files,这部分就是Provisioning Portal,控制管理在你开发过程中需要使用的设备和profiles。
用浏览器打开http://developer.apple.com(见图10-1)
点击右上角的Member Center,输入你的苹果开发者帐号密码,然后登录(见图10-2)。
Page 258 | Chapter 10: Running on a Device
点击“Certifications, Identifiers and Profiles”这个链接,接着点击“Certificates”链接。
Provisioning Portal有四部分:Certificates、Identifiers、Devices、Profiles,把这页加入收藏夹,因为我们以后会经常用到这个页面。
Certificates
第一部分是Certificates.在你运行App时,Certificates用来确认你的身份。唯一的certificate就像是你的签名,这样能够限制其他人在未经你允许的情况下向App Store提交App。
打开Certificate部分后,你会看到一个银色入口(见图10-3)。左边是一排选项,Pending表示你目前正在使用的一些certificate,Development certificates表示用于本地电脑上的证书,Production certificates是用在App Store上的。
Certificates | Page 259
点击右上角的加号按钮,选择iOS App Development,然后点击Continue继续。接着会出现 向导,让你想创建的证书的类型(见图10-4)。选择iOS App Development box,点击Continue。向导接下来会让你创建CSR(Certificate Signing Request),CSR是创建Certificate的一个条件。
Page 260 | Chapter 10: Running on a Device
想要创建CSR,我们首先要打开你Mac中的Keychain Access这个应用程序。点击Mac屏幕右上角的Spotlight搜索图标,输入keychain Access,然后点击搜索出来的第一个选项。Keychain Access启动后会列出你当前电脑上所有的certificates。点击顶部菜单栏中的Keychain Access,然后选择Certificate Assistant --> Request a Certificate From a Certificate Authority(见图10-5)。
接着屏幕上会出现图10-6的向导。填写email和common name,CA Email address这一栏空着,然后勾选“Saved to disk”,点击Continue。选择存放证书的文件夹,然后保存。现在回到浏览器继续Provisioning Portal。
Certificates | Page 261
创建好CSR后,点击浏览器中Continue按钮(见图10-7)。
接下来需要你上传CSR文件。点击Choose File按钮,找到.certSigningRequest文件(见图10-8)。
Page 262 | Chapter 10: Running on a Device
接下来点击Generate,向导开始创建证书。证书创建好后,会出现一个Download按钮(见图10-9)。点击Download下载证书,开发Downloads文件夹,双击刚刚下载的ios_development.cer文件,这样就把文件添加到你的keychain中了。
Certificates | Page 263
再次打开浏览器,点击左边的All选项。用于App Store的第二个证书也需要创建。再次点击右上角的加号按钮,选择“App Store and Ad Hoc”点击Continue(见图10-10)。CSR创建界面这时会弹出来,这一次,你用上次已经创建好的CSR就可以了。点击Continue。
点击Choose File按钮选择之前创建好的.certSigningRequest,点击Generate按钮。出现Download下载按钮,点击Download下载新的证书(见图10-11)。双击ios_distribution.cer 文件即可添加到keychain中。然后再次打开浏览器。
Page 264 | Chapter 10: Running on a Device
Identifiers
Provisioning Portal的第二部分是Identifiers,在Certificates下方。Identifiers是用来管理App的ID的。有点类似美国人的社保号,每个App都有自己独一无二的App ID。
要创建一个App ID,我们首先要左边的侧边栏中点击App ID,然后点击右上角的加号按钮,出现创建App ID的界面(见图10-12)。Name一栏中输入App ID Selfie,不要使用下方列出的特殊符号。App ID Prefix一栏空着,勾选Explicit App ID。Bundle ID这部分使用部分倒序的方式书写,就像是在浏览器地址栏中输入网址,只不过顺序是相反的。不用使用图片中的Bundle ID,例子中的Bundle ID是无效的。输入你自己的Bundle ID,确保使用以下格式:com.domain.app(例如:com.johnsmith.selfieapp)。
Identifiers | Page 265
Bundle ID会进入Xcode中,当你向App Store提交App时,会核对Bundle ID。App Services,你可以为你的应用添加格外的服务。点击Continue。需要你再次确认App ID,如果各项都正确点击Submit。这样,App ID和Bundle ID都创建完成了(见图10-13)。
Page 266 | Chapter 10: Running on a Device
Devices
Provisioning Portal的第三部分是Devices。不能随笔拿个iOS设备就来真机测试你的应用,测试机需要注册。开发者可以每年注册最多100台测试设备,如果这个设备被移除了,就再也不能添加回来了。Devices部分包括了所有可以使用开发者账户的设备,我们使用一串唯一的串码UDID来关联设备。
点击Devices下方的All,然后点击右上角的加号按钮。
我们需要获取设备的UDID(见图10-14),获取UDID的方法是,先把设备链接到Mac上,运行Xcode,设备连接上后,打开Xcode,选择顶部菜单Window --> Devices,出现设备窗口,从左侧栏中选择iOS设备,这时iOS设备上会弹出是否信任这台电脑(Trust This Computer)的提示,点击信任(Trust)。UDID就会在Identifier后面,复制UDID,然后打开浏览器。
把UDID粘贴到输入框中,给这个设备命名(见图10-14),点击Continue。
Devices | Page 267
Profiles
一旦你的设备已经激活了开发者模式且添加到了Devices中,你就可以创建provisioning profile了。provisioning file列举出哪些设备可以运行你的App。把provisioning profile添加到Xcode,然后检查此设备是否授权运行App,provisioning profile用于本地开发和App Store。然而,App Store的provisioning profile不限于具体的设备。
点击Provisioning Profiles下方的All,接着点击右上角的加号按钮。
选择iOS App Development,点击Continue(见图10-15)。Development用来在你电脑上运行App,Distribution是预留你的App提交到应用市场或者群体测试。
接下来,从下拉菜单中选择你的应用的 App ID,点击Continue(见图10-16)。选择你要使用此provisioning profile的证书,大部分情况下,你只需要一个可用证书即可。选择你的证书然后点击Continue。
Page 268 | Chapter 10: Running on a Device
接下来,会出现一个你账户下授权设备清单(见图10-17)。选择你想要测试应用的设备。
最后,使用projectNameDev或projectNameAppStore格式来命名profile name(见图10-18)(例如:MySelfieAppDev)。使用这种格式命名,可以在Xcode中更容易找到provisioning profile。点击Generate,然后下载profile。
Profiles | Page 269
打开浏览器,点击Provisioning Profile下方的All,接着点击右上角的加号按钮。
选择App Store点击Continue。从下拉菜单中选择App的App ID,点击Continue。选择证书,点击Continue。命名profile(例如:MySelfieAppStore),然后点击Generate。
下载profile,然后去文件夹中打开你刚刚下载的provisioning profile。会以.mobileprovision结尾的两个profile(见图10-19)(MySelfieAppDev.mobileprovision和MySelfieAppStore.mobileprovision)。双击这两个profile即可添加到Xcode,添加成功后,就可以在工程中看到这两个文件了。
Page 270 | Chapter 10: Running on a Device
打开Xcode工程,点击Project Navigator中的工程名字,Editor中会显示出工程的详细信息。在Team里的下拉菜单中选择Add an Account。登录你开发者帐号和密码,接着点击Add(见图10-20)。
Profiles | Page 271
关闭Accounts对话框,回到工程详细信息中来,点击上方名为Info的tab按钮,清空Bundle Identifier,然后输入上创建App ID时输入的倒序Bundle ID(例如:com.johnsmith.selfieapp)。
接着选择Build Settings,滑到Code Signing区域,在Code Signing Identity下方,Debug一栏选择iPhone Developer:你的名字。确保下方所有的iOS SDK都是同样的名字。Release一栏选择iPhone Distribution:你的名字。确保所有的iOS SDK都是同样的名字(见图10-21)。
点击上方General这个tab选项,确认bundle和团队信息是否正确无误。
打开浏览器,到AppSchool下载App icons(图10-22)。(这个网址我一直打不开,我也不知道咋回事,一开始以为是被墙了,后来觉得可能是网站已经关闭了吧)
Profiles | Page 273
打开存放icons的文件夹,然后打开Xcode,把文件夹中的图标拖动到Xcode中的Images.xcassets里。
现在,你可以在真机上运行你的程序了,把你的iOS设备连接到Mac上,点击Xcode顶部iOS Simulator下拉菜单,选择iOS device,点击Play按钮(Run)。
如果你在真机上运行我们之前讲解的小应用Selfie,你可能会看到Xcode的警告“process launch failed: Security”,这是第一次运行时的警告,打开你的设备(iPhone或iPod等等),点击Trust from the App Developer,接着App会向你获取使用摄像头的权限。点击Home键,回到桌面,你看会看App的图标已经显示在桌面上了。
祝贺你,现在,你已经成功地在真机上运行应用了。
如果你收到了错误或者警告,不要担心,熟能生巧,到网站上下载源码(这个网站可能废掉了),对比学习,多练习几次,直到成功~
Profiles | Page 273