《iOS编程指南》——2.5节准备你的iOS设备

2.5 准备你的iOS设备
iOS编程指南
在设备上部署应用之前,你需要按照图2-5所示的步骤来做相关配置。

如果你已经加入了iOS开发者计划的标准版或者企业版,你现在就可以生成相应的证书和描述文件(Provisioning Profile)了,通过这个证书和描述文件,你才能把下一章中的测试程序安装到你的iOS设备上。

证书和描述文件
Xcode构建工程的时候需要使用开发证书来对二进制文件进行签名,这个开发证书同时也是你作为iOS开发者的唯一标识。Xcode会从Mac OS X的Keychain程序里自动寻找这个开发证书以及另外一个名为WWDR Intermediate Certificate的证书,这个校验证书也是从Developer Portal上下载的。
描述文件将开发证书(也就是开发者)、设备以及iOS应用的App ID绑定在一起,用于唯一标识安装在开发设备上的应用。要把使用了开发者证书签名的应用安装到iOS设备,你必须将相应的描述文件也同时安装到这个设备上才行。
当前版本的Xcode会自动创建和更新开发iOS应用所需的证书和描述文件。不过我还是建议你至少在第一次创建证书和描述文件的时候手动做一下,这样你可以弄明白整个过程,理解Xcode在背后帮你做了些什么事情,一旦Xcode出了问题也可以自己来手动搞定,而且Xcode也的确经常出问题。

2.5.1 创建开发证书
首先,你需要的是一个开发者证书和苹果公司的WWDRIntermediate证书。在从Provisioning Portal申请开发者证书之前,你需要先使用Keychain Access应用程序创建一个证书签名请求(CSR)。

在系统的/Applications/Utilities目录下找到Keychain Access应用程序,启动之后依次选择Keychain Access→Preferences菜单,打开Certifications选项卡,确保Online Certificate Status Protocol(OCSP)和Certificate Revocation List(CRL)两个选项都处于Off状态,如图2-6所示。

接着,在Keychain Access的菜单中点击Certificate Assistant→Request a Certificate from a Certificate Authority,输入之前注册过程中用作Apple ID的电子邮件地址,如图2-7所示。选择“Save to disk”单选框并勾选“Let me specify key pair information”,Keychain Access应用程序会将这个证书请求保存为文件,因此会弹出一个窗口让你输入文件名。

接受默认参数(a key size of 2,048 bits using the RSA algorithm)就好,然后单击继续按钮,应用程序会生成一个CSR文件并保存到磁盘。文件会保存到你之前输入文件名称时指定的路径(默认情况下是保存到你的桌面)。

下一步,登录到iOS Dev Center,点击Provisioning Portal链接,新打开的页面是管理与你的开发者账号相关联的证书和设备的地方。1

点击Certifications链接,打开管理证书的页面,进入Deverlopment标签,点击Request Certificate按钮,根据引导上传你刚生成的CSR文件。

如果你是以个人身份加入iOS开发者计划的,系统会自动批准你的证书请求;如果你只是开发团队的一员,就需要团队的管理员审批并通过你的证书请求,之后系统才会生成证书并允许你下载。

图像说明文字如果你点击Approve之后没有看到下载选项,点击Development标签来刷新页面,就应该有了下载选项。

通过审批之后,下载你的个人证书以及WWDRIntermediate证书并安装到Mac OS X系统的Keychain中。依旧是在Development标签下,点击个人证书右侧的Download按钮,然后右键点击WWDRIntermediate证书,选择保存链接文件到磁盘。

将这两个证书下载到本地之后需要把它们安装到Mac OS X系统里,双击证书文件,Keychain Access程序就会自动启动,Keychain Access会弹出确认对话框让你再确认一遍是否要安装证书文件,直接点击确认按钮就可以了。

图像说明文字 如果系统中有多个Keychain,安装证书的时候会有下拉框要求选择装在哪个Keychain里,选择默认的那个就好,通常叫做login。在Keychain Access程序的左上角使用粗体显示的就是默认keychain,最好是保持login为默认Keychain,如果login不是默认的,可以通过菜单File→Make Keychain“login”Default来将其修改为默认的。如果不把证书安装到默认Keychain里,Xcode就找不到证书,因此将无法使用证书进行二进制签名,也就无法将你的应用安装到iOS设备上去。

打开Keychain Access应用程序,然后点击左侧下方Category中的Certificates分类,你可以看到所有成功地安装到了你的keychain中的证书。在这里,你应该可以找到你自己的开发者证书和苹果公司的WWDR证书这两个证书,如图2-8所示。

Keychain Access程序显示了新安装的证书,这两个证书是使用Xcode开发iOS应用并部署到iOS设备上是必须的

2.5.2 获取开发设备的UDID
将iOS设备连接到Mac计算机,打开Xcode,选择Window→Organizer菜单,打开Organizer窗口,里面会列出已连接到你的计算机的设备。

为你的开发设备创建描述文件需要使用这个设备的唯一设备标示符(UUID),在左侧菜单中选中这个设备,就是那40个字母长的字符串,右键复制。

回到Provisioning Portal,点击Devices,选择Manage标签,点击Add Device按钮,输入设备名称和UUID,点击Submit按钮,现在这台设备就注册好了。

2.5.3 创建App ID
App ID也是创建描述文件所必需的,描述文件和刚才创建的证书不同,证书是放在Mac系统的Keychain里面的,Xcode使用这个证书来给iOS应用的二进制文件签名,而描述文件是用来绑定开发证书、应用和设备的,通过Xcode安装到iOS设备上,iOS系统会对程序签名和描述文件进行校验,校验成功后应用才能正常运行。

在iOS Developer Program Portal里点击App IDs,选择Manage标签,点击New App ID按钮,输入App ID的名称,名称可以随便取,不过最好是能方便你理解的。这是首次创建App ID,所以在Boundle Seed ID中选择Generate New。

最后输入一个Bundle Identifier,这个必须是唯一的,大多开发者选择将自己的域名反过来写作为Bundle Identifier。例如我的域名是babilim.co.uk,于是我把uk.co.babilim.*作为我的Bundle Identifier。

星号(*)出现在结尾用作通配符,这意味着你可以让多个应用共用这一个App ID。如果不用通配符就需要为每个应用都创建一个新的App ID,相应的描述文件也要新创建一个,否则应用就无法在你的设备上运行。使用通配符也就意味着即使你有很多应用,也只需要创建一个描述文件就可以了。
从技术层面上来说,这种方式会让iOS设备中的多个应用共享设备中Keychain的同一部分,我们接下来再深入地谈一谈这个问题,因为虽然使用通配符听起来很赞,但问题是使用这种App ID的应用无法使用苹果的Push Notification服务以及应用内支付服务。

点击Submit按钮,网站会生成一个新的10个字母的Bundle Seed ID,将这个ID和之前你填写的Bundle Identifier连接起来,就是你的App ID了。

你最好把这个Bundle Identifier记录下来,当你把你的应用部署到iOS设备的时候会用得到,第3章结尾的地方会提到这个问题。

2.5.4 创建移动描述文件
接下来可以创建移动描述文件了2,进入Provisioning Portal的Provisioning页面,选择Development标签,点击New Profile按钮。

输入名称,这里我强烈建议使用“Developer Profile”,因为之后你还要创建其他多个描述文件,包括用于发布到App Store以及通过Ad hoc方式来发布测试版本所需要的描述文件,这样做可以防止名称混淆。

选中你需要关联的证书前的选择框,如果你是个人开发者,这里应该只有一个可选的证书,就是你刚刚用Keychain Access申请的那个。

选择刚刚创建的App ID,再选择你的开发设备(如果不止一个开发设备的话,可以选择多个),这个描述文件只会认为选中的这些设备是合法的。前面提到过Xcode会把描述文件安装到设备上,而用这个描述文件中的证书签名的应用就可以在这台设备上运行。

如果你在这里选错了或者少选了设备也不要紧,之后可以随时在已有的描述文件里添加设备,不过那样会重新生成描述文件,然会还要再一次下载到本地并更新本地的描述文件才行。

点击Submit来生成新的描述文件,这个是用来开发的,在本书的后面部分我们会讨论用于发布的描述文件怎么生成。这个时候描述文件的状态会变成“Pending”,点击Development标签来刷新页面直到生成成功。

描述文件生成之后,点击Download下载到你的计算机上,有多种安装方法,最简单的是把.mobileprovisioning文件拖放到Mac系统的Dock上的Xcode图标上。

2.5.5 让你的设备支持开发
这是在开始写代码前的最后一步了,回到Xcode,选择菜单Window→Organizer,从左侧栏选中你的开发设备,点击Use for Development按钮。如果Xcode没有成功地对你的设备进行注册,则把数据线断开,然后重新连接一下。如果还是不行,尝试把设备重启一下,然后重试一遍。你可能需要重置设备,这取决于设备上安装的操作系统的版本以及SDK的版本,在Xcode的Organizer窗口中可以重置。但是,这个过程中你将丢失设备上已有的数据。如果真的需要重置,你可以通过iTunes或者iCloud将你的数据先备份一下。

如果你有钱的话建议你单独买一个设备专门用于开发,将来你可能会安装iOS的Beta版来了解新版本的新特性以及预先做新版本兼容准备,而Beta版一般都很不稳定。如果你在日常生活中非常依赖于通过iPhone来和其他人联系,那么你很可能就更不想用这个iPhone来同时做开发了。

安装了描述文件之后可以检查一下Xcode是否已经将描述文件同步到设备中了,打开设备,选择“设置→通用→描述文件”(Settings→General→Profile)就可以查看到了,如图2-10所示。

现在检查一下是不是全部都能正常工作了,在Xcode的Organizer窗口里查看左侧边栏中设备名称右侧的指示灯的颜色,绿色就表示一切就绪,黄色表示存在问题。点击设备的名称,在主面板中会显示该设备已安装的描述文件,如图2-11所示。

Xcode的Organizer窗口显示我的iPhone 5已安装好描述文件并已做好开发准备

恭喜了,你已经安装好了所有必需的证书和描述文件,现在可以在你的设备运行你编写的代码了。

1译者注,随着苹果对系统的升级,iOS Dev Center也会升级,因此网页的界面可能会发生变化,请读者不要拘泥于本书所描述的按钮或链接的名称和位置。
2译者注,随着苹果对系统的升级,iOS Dev Center也会升级,因此网页的界面可能会发生变化,请读者不要拘泥于本书所描述的按钮或链接的名称和位置。

时间: 2024-11-30 19:14:52

《iOS编程指南》——2.5节准备你的iOS设备的相关文章

《iOS编程指南》——2.1节注册成为iOS开发者

2.1 注册成为iOS开发者 iOS编程指南 在不久之前,获取Xcode需要先注册为苹果开发者.现在不必了,你从Mac App Store直接就可以下载最新本的Xcode和iOS SDK. 如果你还在使用OS X 10.6(Snow Leopard),那么你需要先注册为苹果开发者,成为iOS开发者计划的一员,然后从iOS Dev Center下载Xcode 4和iOS SDK,因为Mac App Store上提供的Xcode的版本只兼容OS X 10.7(Lion)和10.8(Mountain

《iOS编程指南》——1.1节优点和缺点

1.1 优点和缺点 iOS编程指南 对于苹果发布的SDK,也不是所有人都买账,在有些人看来这简直是技术的退步,他们认为Web应用已经足够好了.因为用Objective-C专门针对iPhone开发的应用很难移植到其他平台,而Web应用只需要开发一套新的CSS模板就可以了. 但用户并不同意这样的观点,他们才不管开发起来难度有多大,他们只关心好不好用.不过说起来Web应用移植起来也没有想象中那样容易.各个平台的应用外观不尽相同,在做到平台兼容的同时还要实现外观的本地化,其实是一件非常困难的事.如果把W

《iOS编程指南》——1.2节发行周期

1.2 发行周期 iOS编程指南 Paul Graham是我最喜欢的布道师之一,他认为基于Web的软件开发技术的到来不仅极大改变了软件的用户体验,也改变了软件的开发体验: 新的开发技术颠覆了传统的软件发行方式.回想一下桌面软件的发行过程简直就像做了一场噩梦,整个公司上上下下都精神高度紧张,前途取决于这一堆繁杂的代码,不敢出一点错.不论是软件的发布过程还是软件产品本身,这一切都改变了,这一点不证自明. --摘自"The Other Road Ahead",作者:Paul Graham 他

《iOS编程指南》——1.3节做好了用户自然会来

1.3 做好了用户自然会来iOS编程指南在本章的前面,我一直在说Web应用不好做,因为它们对网络的依赖性太强.其实也不完全是这样,HTML5支持离线缓存,可以在很大程度上解决这个问题,尽管会受到比较大的限制.不过,本地化应用的最大优势是App Store所营造的生态圈,相对于Web这个巨大的空间,App Store要小多了,即使现在App Store变得越来越拥挤,但是依然比Web小得多,用户可以很容易在其中找到你的应用,有了用户也就有了收益. 通过App Store这个平台,用户可以更方便地查

《iOS编程指南》——2.2节加入iOS开发者计划

2.2 加入iOS开发者计划iOS编程指南如果你打算在App Store上销售你的应用,或者仅仅只是想把它们安装到自己的iPhone,iPod touch或iPad上,那么你需要加入iOS开发者计划.如果你还没注册为苹果开发者,你可以在下面的过程中来完成. iOS开发者计划是按年付费的,在过期前60天可以开始续费.如果你不续费的话,你将无法发布应用.另外苹果会吊销你的开发者证书和发布证书.最后,苹果会将你在iTunes App Store上的所有应用下架. 加入iOS开发者计划有两个选择.大多数

《iOS编程指南》——2.3节Mac开发者计划

2.3 Mac开发者计划iOS编程指南和加入iOS开发者计划一样,你同样可以加入Mac开发者计划.如果你是认真对待iOS开发的话,这是一个不错的主意.你可以通过这个链接进行注册:https://developer.apple.com/programs/mac/. 同样,Mac开发者计划的价格也是年付99美元.如果你希望注册这个计划,使用和iOS开发者计划的同一个Apple ID来注册是个不错的选择.

iOS 地址簿编程指南(Address Book Programming Guide for iOS)

iOS 地址簿编程指南(Address Book Programming Guide for iOS) 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 概述(Introduction) iOS

《iOS编程指南》——第 1 章为何选择本地化应用

第 1 章 为何选择本地化应用iOS编程指南早在2007年发布iPhone的时候,苹果并没有一同发布本地化SDK,苹果公司声称不需要本地化SDK,鼓励大家使用JavaScript,CSS和HTML开发Web应用.但接下来剧情并没有按照苹果设计的那样发展,也许是苹果的思想太超前,大多数开发者并不吃这一套,他们希望自己开发的应用和iOS系统内置的应用一样,可以直接访问硬件并和系统高度集成. 于是在iPhone发布后短短几个月,开源社区就完成了一系列苹果原本认为不可能的事情.苹果本来试图通过技术手段把

《iOS编程指南》——第2章成为一名开发者

第 2 章 成为一名开发者iOS编程指南在你正式开始写代码之前,需要先做些准备.首先你需要安装苹果的集成开发环境Xcode,以及iOS SDK.这些都由苹果公司提供,你可以在Mac App Store直接下载并安装. 然而,如果你希望发布你的应用,或者仅仅只是希望把它们安装到你的设备上,则需要向苹果公司注册为开发者,然后加入iOS开发者计划.接下来你还需要创建.下载并安装一系列的证书和文件,之后才能把你的应用部署到你的iPhone,iPod touch和iPad上去. 开发iOS应用需要一台In