1.奔跑吧,App(Running on the device)
前言
App已经受够了一次又一次在Simulator上的调试,它渴望在你的iPhone或者iPad上奔跑!
注:本文建立在以下几个条件,倘若不满足,请跳出本书。
1.你已经付费99$拥有了iOS Developer Program accout。
2.你已经拥有一台或多台调试设备,iPhone,iPad等等。
3.假如你要将你的apps放到iTunes App Store上,那么你还需要to be a memeber of the paid Developer Program.因为某些朋友并非是用99$购买,而是在某宝花十来块钱购买的,仅限真机调试。
亲,倘若你的开发决心坚如磐石,那么请follow me! 给出以下几个链接,做好相关准备,比如申请开发者账号,购买99$证书等等。
申请账号地址:https://developer.apple.com/register/index.action
证书购买地址:https://developer.apple.com/programs/ios/
证书的区别
Development Certificate,开发证书。作用:为你开发的apps数字签名,这样才能允许Xcode将apps在你的iPhone,iPad跑起来。
Distribution Certificate,发布证书。作用:倘若你想将apps提交到App Store发布,那么apps必须被该证书签名才被允许。
总结:证书就像一个监督者,职责就是检查你是否是一个ios应用开发者,开发时间有效期(一般来说是一年)。
Provisioning Profile扫盲
除了上文提到的有效证书之外,对于每一个你所开发的app,我们都需要一个所谓的Provisioning Profile,即配置文件。字面上很好理解,每一个app必须有对应的配置文件。为了让app在device上跑起来,Xcode将使用profile对app进行签名(sign)。具体详情不再阐述,只要明确你需要一个provisioning profile,倘若没有,app将无法在你的设备上运行。
此外,任何一款设备,如iPhone,iPad都必须在你的Developer Program account进行注册(后文会详细提及)。当然苹果公司对于设备数量也是有一定限制的,目前是100台。"我擦 怎么那么多!"确实,听起来貌似很多的样子,但实际上你要知道这100台还包括测试用户(beta testers)以及在App Store以外发布你的杰作,让其运行在别人设备上。
注意:目前iOS8已经支持TestFlight beta testing服务,拥有它,不再要求你往开发者账号里注册那些beta testers的设备了!你要知道每次填是多么麻烦的一件事!真是处处闻啼鸟,why are you so diao!
正题
打开Mac电脑,通过USB连上你的iPhone、iPad、iPod touch等设备
打开Xcode,在菜单栏选择Window->Devices打开Xcode的设备窗口。如下图
点击你的设备名字选中它
如果这是你第一次连接该设备到Xcode,设备窗口可能会这样提示你:“pmst's iPad is not paired with your computer”。这是常见的匹配问题,首先解锁你的设备,紧接着会弹出警告框询问你是否要信任该设备,选中信任按钮继续。
Xcode将重新刷新页面,之后你就可以选择开发设备了。这里可能还会遇到一个错误消息:An error was encountered while enbaling development on this device。尝试请拔出你的设备,再插入连接一次。或者重启Xcode吧,这该死的家伙总是是不是抽风下,重启之后又生龙活虎。
在Xcode中设置你的开发者账号,这里我假定你手头已经有一个付费账号。
打开Xcode->Preference选中Accounts面板:如下图
点击+选择Add Apple ID.
还在等什么,填入你的账号密码!Xcode会验证你的账号,然后添加到accouts window。
现在请点击View Details...
你讲看到另外一个版面,罗列出你的签名认证(即证书)以及provisioning profiles.现在面板可能是空白一片:
点击箭头所指方向的刷新图标,很遗憾的告诉你,这需要Xcode联网,因为点击之后Xcode将与iOS Dev Center请求获取已有的所有证书(certificates)以及配置文件(provisioning profiles),这建立在你已经有的条件下!如果这是你的第一次,那么你可能会遇到下面这个问题消息,很好理解,因为你没有证书,也没有配置文件,
选中Request然后耐心等待几秒即可
在xcode中非常简单,Xcode自动将设备注册到你的开发者账号,创建一个新的开发证书,以及下载和安装所谓的Team Provisioning Profile在你的设备,你可能疑惑,为啥叫teamprofile,前面说过一个设备对应一个配置文件,但是一旦有这个team配置文件,你就可以运行在所有注册设备上。
这里可能出现另外一个问题,证书有了,但是provisioning profile没有,你可以打开一个项目,然后选择我们连接的设备,然后点击运行,将弹出一个错误框,点击Fix Issue修复。
多尝试修复几次即可。现在来看看我们是否有Team provisioning profile文件了吗?打开Account面板,恩..有了.如下图。
那么如何查看设备是否有了呢?Window->Devices选中你的设备右键Show Provision Profiles.细心的朋友发现Team Provisoning profile名字中有一个通配符App ID(*),何为App ID?就好像每个孩子有个名字一样,我们将给自己开发的app也取名(即App ID).那么通配符星号指代任何一个App ID.也正因为如此,你可以用它作为任何一款app的配置文件。当然以后还会讲到明确的指定App ID,那样我们的provisioning profile要唯一指定了,这里先按下不表。
现在我们去看看https://developer.apple.com/devcenter/ios中是否有我们的配置信息。首先在iOS Developer Program选择Certificates Identifiers & Profiles.
其实很大部分都是Xcode帮我们解决了,谢天谢地!现在尽情地开始真机调试吧!
一些常见错误
The device is not connected.确保电脑连接了你的设备。关于设备都在Xcode的Windows->device显示,假如显示黄色警告,那可不是一个好消息。
the device is locked.解锁你的设备!
No signing identity found你的开发证书没有找到、无效的、又或者缺少相关私钥!这时候xcode将会请求新的证书。当然你也可以自己创建,不久之后我将写第二篇文章来介绍。
Code Sign error: a valid provisioning profile matching the application’s Identifier ‘com.yourname.BullsEye’ could not be found.Xcode可能没有有效的provisoning profile来签名app.我觉得可能是Team provisioning Profile安装失败了
No valid provisioning profile on the device.这个一般情况不会出现拉
Xcode could not find a valid private-key/certificate pair for this profile in your keychain.开发者证书没有正确安装。比如你换了台电脑,你只移动了证书,但是你却忘记了相关私钥(private keys)。
写在最后
本文参考了网上内容以及外国友人的书本,自己亲自实验多次写的总结。现在分享给大家,希望转载时候能注明出处,谢谢!
原文链接:http://blog.csdn.net/colouful987/article/details/43194027