iOS 向客户发送xcarchive文件(整理中)

由于安全的原因,客户不会把app的 distribution provisioning profile给开发者的,但是可以给一个development provisioning profile。这种情况下,我们把code signing中的provisioning profile的release版本设置为development provisioning profile,之后就可以进行archive了,再把archive发送给客户,他可以通过Organizer进行后续的发布操作。

这里面主要涉及了archive 和 distribution的知识。

archive不对provisioning profile做过多检测,只需要满足最低要求就可以:能够在真机运行的标准。所以,即使像下图这样的设定,也可以顺利archive:

而且,仅仅使用开发者provisioning profile再xcode7以上,也是可以导出ipa的。证明一下,下面是使用*类型的provisioning profile,进行export ipa的最后一步的截图:

我们再看看Organization中的几种发布方法,看下图:

我们刚才使用的是第四个选项,只需要development provisioning profile就可以了,但是前3个各自需要不同类型的 distribution provisioning profile。

其中第四个选项比较容易疑惑,什么叫development deployment呢,其实就是把cer和provisioning profile都用对应的dev版本,生成一个ipa,能够debug的设备都可以安装,这样看来,作用和 adhoc 有相似之处。

这个选项是xcode7.0之后出现的,经过我的测试,当设备被关联进development provisioning profile后,生成的ipa可以直接安装在这个设备上,而且不像用Enterprise Deployment 发布的程序还需要在设备上点击信任证书的选项。我这里有一个疑问,它和Ad hoc deployment有什么区别呢?

通过下面的截图能看出,基本上分4种证书,App Development, In house, Ad hoc, App store.分别对应Organization中的4个选项,

不要把archive和 distribution搞混了,真正的distribution是在Organizer中进行的。archive时的bundle id是非常关键的,bundle id确定后,必须选择对应的certificate的team才能进行发布,而且Organizer会在distribution过程中根据这个id去找匹配provisioning profile,如果有相应的provisioning profile 就可以发布,并不对archive时的证书做过多要求,Organizer回自动用合适的证书替换archive时的错误证书。

我把一个用develop provisioning profile的archive 分别用Development deployment 和 ad hoc deployment (已经申请了ad hoc证书)进行打包ipa,生成ipa后,对比这2个包中的embedded.mobileprovision文件,发现是不同的,由此,可以看出Organizer确实自行更改了 provisioning profile。

原文地址:https://www.cnblogs.com/breezemist/p/5733966.html