前言:
做为一个iOS应用的开发者,在编码调试过程中,可以使用模拟器来完成整个过程。但是在最后提交上线App的时候,
就必须要有一个苹果开发者账号。而我作为一个近乎完全自学的iOS开发者,在开发者证书上也是绕了很多圈,迷茫迷惑。
在反复摸索验证的情况下。最后看透了这一切。最初一开始是在淘宝网上购买证书的,后来在公司有了自己的个人开发者
账号,在个人开发者账号上摸索(生成开发证书,真机调试,发布App。。。再后来,公司有了自己的企业级开发者账号,
又在企业级的开发者账号上摸索(企业in-house应用发布)。
开发者账号分为(个人开发者,企业级开发,大学教学账号)
账号间的主要区别:
1.个人开发者:每年需要支付99$的价格(约合人民币大概600元)。可以发布App到AppStore,可以申请develop证书,
进行真机测试。
2.企业级开发者:每年需要支付299$的价格(约合人民币大概1800元)。这个账号的优点是可以不通过AppStore应用市
场就可以把应用安装到用户的手机(采用的是in-house证书安装),而且安装量没有上限。不像Ad-hoc证书,安装有上限,
而且还需要注册设备的id号。可以申请证书真机测试。申请这个证书需要有500+人得公司才能申请到。
3.大学教学账号:为了大学可以更好地教学ios开发。该账号不能发布App到AppStore,唯一的好处,就是可以真机调试。
开始:
在登录到开发者中心证书生成管理后台的时候,如果是空账号的话,需要先申请一个certificate证书,这个是主证书。
为什么称呼它为主证书。当在多台Mac设备上开发的时候,需要.certificate主证书 和 .mobileprovision证书。
多台Mac设备上的.cer证书都是一样的,区别只是.mobileprovision证书千差万别。你直接安装.cer证书会有
Mac上限限制,所以一般都是由其中安装.cer证书的Mac用户导出p12文件给其他Mac开发者。其实也就是安装.cer证书。
=====================分割线=========================
问题一:什么是.certificate证书?什么又是.mobileprovision证书?
.certificate主证书,申明了属于的develop team,与之有复杂的秘钥相对应。
.cer证书分为两类:develop(开发) production(发布or产品)
真机调试的时候,使用的.certificate的develop证书。
发布App产品的时候,使用的.certificate的distribute证书。
.mobileprovision证书也分为两类:develop(开发) distribute(发布)。
申请.mobileprovision证书的时候,需要选择在什么develop team下的真机调试。
所以导入的是什么.cer证书,影响后面选择什么develop team。
在真机调试的时候,使用的也是.mobileprovision的develop证书。
发布App的时候也是需要.mobileprovision的distribute证书。
======================分割线========================
问题二:如何生成.certificate证书?
进入.certificate证书界面,点击+号,它后台会有教你如何生成.certifacate证书。
首先在本机Mac上面,使用钥匙串工具,导出一个CSR秘钥。CSR秘钥创建时,需要你填写相关的信息。
创建CSR秘钥成功后,将其upload到开发者账号后台,然后就可以生成相关的.certifiacate证书了。
这类.cer的证书创建是有上限的。当你创建到达上限的时候,就不能继续创建.cer证书了。
最多可以创建3个develop的.cer证书,2个distribute的证书。
======================分割线========================
问题三:什么是p12文件?
p12文件解决的是多台Mac设备同时使用一个.cer证书调试应用。
p12的导出就是在使用钥匙串工具,找到你下载导入的.cer证书(distribute),右键点击导出即可,可能要求你输入密码。
这样p12文件其实就是一个.cer的证书,如果有其他的mac需要开发程序真机测试,只需要把p12文件发给其他的Mac,
然后其他Mac点击p12文件,输入密码。就可以把.cer证书安装到其他的Mac上面了。然后其他的Mac进行真机测试开发的话,
只要去后台把测试设备的id输入下,把设备注册到后台,就可以导出.mobileprovision(develop)证书,然后开发程序了。
======================分割线========================
结合上面的三个问题,有几个点需要说明,再此再做赘述。
一、关于App ID的说明
上面其实还漏掉了重要的一个步骤。就是后台你需要注册App ID。
App ID创建主要就是App的bundle id的填写。比如后台填写的bundle id是:com.myapp.music。
这个bundle id对应的是我们的App的bundle id。如果后台填写的bundle id跟我们的App bundle id不匹配,
在导出develop的mobileprovision的时候,选择调试的App的bundle id也就找不到跟我们App bundle id匹配的了。
导出来的mobileprovision也就是因为上面的不匹配,导致无法真机调试。
细说App ID。
App ID是可以使用通配符的。
比如后台申请的App ID的Bundle id是这样的:com.*。
那么它可以通配的Bundle ID可以是这样的:
com.myapp.music
com.myapp.video
com.youapp.game
com.game.jumper
等等...
所以在导出mobile provision的时候,当你选择的是com.*这个的话,你的App的bundle id只要符合这个通配符,就可以真机调试。
二、导出证书、真机调试!
我们的目标是真机调试,所以导出的是develop的证书、导出mobile provision的develop证书的时候,需要注意两个地方。
第一个就是上面说的App ID的bundle id的问题。
第二个就是选择调试的设备。(这个设备你需要首先在devices选项中注册好。)
然后就可以导出了。配合上你正确地.cer主证书,就可以使用你注册的调试设备,调试程序了。
三、导出企业级的in-house的ipa安装包!
其实原理一样。首先你需要有一个企业级的开发者账号。
登陆你的企业账号,进入后台,将.cer或者其他Mac上导给你的p12文件下载安装好。
然后你还需要一个in-house的导出证书。。
in-house证书有一个坑爹的地方。就是需要bundle id必须是三段式。否则不给过。
所以你创建App的时候,最好Bundle Id也使用标准的三段式。
像这样:
com.corpname.appname
四、发布应用到App Store!
1.首先是要在App的Itunes后台添加应用,注意bundle id的填写要与要发布的App的Bundle id相同。
后台按照要求填写好App应用相关信息。
2.申请发布证书provision文件。
基本流程一致,需要注意的地方就是App ID的bundle id的选择。
安装好发布证书后,需要在project->general->code signing的地方选择好相关的证书,也可以使用auto。
有时也可以不用指定code signing的。但是为了确保准确,我还是建议选择一下。
3.打包ipa:
1.选择应用的edit scheme,选择release模式。设置好应用的版本名称(1.4.32)和迭代的版本号(version code)
2.菜单栏选择product->archive(如果发现archive是灰色状态,将项目的调试目标改为ios device即可)
3.安静等待xcode对代码的编译,连接,生成。。
4.生成成功后,会弹出orgnizer视图。然后选择刚刚生成的项目,选择submit to App store。
如果你上面的证书都是正确的。按照提示步骤,就可以将应用上传到app store了。
苹果后台上传ipa有时候很慢。需要耐心地等待。有时候也会time out。所以。。你需要多尝试提交几次如果失败的情况下。
xcode上传app成功后,就可以在iTunes后台能看到应用了。
然后就可以添加你的应用,保存,提交待审核。一般最多2个星期就可以从Apple审核那边获取到结果了,最快一个星期。
尾声、
强烈建议及时的登录到xcode->preference->account中,添加你的个人开发者账号,那里可以很方便的管理自己的证书。
基本描述清楚了证书之间的关系,它们的创建等。多是自己的摸索。如有误,请指正。