前言:ios
作为一个iOS应用的开发者,在编码调试过程当中,可使用模拟器来完成整个过程。可是在最后提交上线App的时候,
就必需要有一个苹果开发者帐号。而我做为一个近乎彻底自学的iOS开发者,在开发者证书上也是绕了不少圈,迷茫迷惑。
在反复摸索验证的状况下。最后看透了这一切。最初一开始是在淘宝网上购买证书的,后来在公司有了本身的我的开发者
帐号,在我的开发者帐号上摸索(生成开发证书,真机调试,发布App。。。再后来,公司有了本身的企业级开发者帐号,
又在企业级的开发者帐号上摸索(企业in-house应用发布)。xcode
开发者帐号分为(我的开发者,企业级开发,大学教学帐号)
帐号间的主要区别:
1.我的开发者:每一年须要支付99$的价格(约合人民币大概600元)。能够发布App到AppStore,能够申请develop证书,
进行真机测试。app
2.企业级开发者:每一年须要支付299$的价格(约合人民币大概1800元)。这个帐号的优势是能够不经过AppStore应用市
场就能够把应用安装到用户的手机(采用的是in-house证书安装),并且安装量没有上限。不像Ad-hoc证书,安装有上限,
并且还须要注册设备的id号。能够申请证书真机测试。申请这个证书须要有500+人得公司才能申请到。ide
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)证书,而后开发程序了。
======================分割线========================
结合上面的三个问题,有几个点须要说明,再此再作赘述。调试
1、关于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只要符合这个通配符,就能够真机调试。code
2、导出证书、真机调试!
咱们的目标是真机调试,因此导出的是develop的证书、导出mobile provision的develop证书的时候,须要注意两个地方。
第一个就是上面说的App ID的bundle id的问题。
第二个就是选择调试的设备。(这个设备你须要首先在devices选项中注册好。)
而后就能够导出了。配合上你正确地.cer主证书,就可使用你注册的调试设备,调试程序了。ip
3、导出企业级的in-house的ipa安装包!
其实原理同样。首先你须要有一个企业级的开发者帐号。
登录你的企业帐号,进入后台,将.cer或者其余Mac上导给你的p12文件下载安装好。
而后你还须要一个in-house的导出证书。。
in-house证书有一个坑爹的地方。就是须要bundle id必须是三段式。不然不给过。
因此你建立App的时候,最好Bundle Id也使用标准的三段式。
像这样:
com.corpname.appname
4、发布应用到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中,添加你的我的开发者帐号,那里能够很方便的管理本身的证书。基本描述清楚了证书之间的关系,它们的建立等。可能是本身的摸索。若有误,请指正。