iOS发开蛋疼集锦
Write by iceAna Team
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
在你的设备,你可能疑惑,为啥叫team
profile
,前面说过一个设备对应一个配置文件,但是一旦有这个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)。
写在最后
本文参考了网上内容以及外国友人的书本,自己亲自实验多次写的总结。现在分享给大家,希望转载时候能注明出处,谢谢!