关于企业版账号的备忘

来龙去脉

  • 测试说企业版打出来的包不能安装到手机,用iTools安装,包“验证失败”
  • XCode试,模拟器是没有问题的,可以正确编译、安装、执行。用真机也不行了,报代码签名错误,详细信息是所选择的手机不在信任列表里... ...
    这是企业版账号啊,跟手机有什么关系?这个企业版账号跟普通的App Store的账号好像没什么区别啊。
  • 在运维的帮助下,登录苹果开发者后台账户,看到了两个Provisioning Profile,对应于两个证书,分别是DevelopmentDistribution,确实和App Store的账号一模一样。
  • 在跟运维确认了这是企业版账号之后,我决定找找原因看,这个有点颠覆自己对企业版的认识,记得自己是在2013年左右玩过企业版的,看来苹果又改什么东西了,知识需要更新了。
  • 同事推荐了下面的第一篇参考文章,我就照着做了。现在的账号一律不动,自己就新建一个账号试试。
  • 钥匙串中生成一个CertificateSigningRequest,发给苹果,生成一个新的证书。
  • 下载生成的证书(.cer文件)到本地,并双击一下安装到自己mac的钥匙串中。这个步骤很重要,不然的话XCode中会显示证书不对。当时折腾了好几次才知道这个小细节。
  • AppID已经生成好了,不用动。设备ID虽然有这一栏,始终认为企业版不需要管设备ID,一致没动。
  • 接下来就是生成Provisioning Profile,这里唯一要注意的是类型要选择In-House。生成后,发现类型是Universal Distribution
  • 采用这个新证书,用XCodeRun选项来装。结果是能装上,但不能运行和调试,一闪就退出了。手机上的程序可以点击打开,功能正常。瞬间了解了,这是发布版,是Release模式,当然不能用XCode调试啦(现象是闪退,但是程序已经正确安装到手机上)。这个和普通的release是一个现象。
  • 打包,导出ipa,再用iTools安装,一切正常了。

原因分析

  • 经历过一次,终于明白,企业版也分为开发模式和发布模式
  • 开发模式也是Development,可以连XCode调试,不过手机的UUID也要添加。(这一点以前一直没有认识到。一直认为,企业版跟手机的UUID应该无关才对)
  • 企业版的发布模式应该选In-House,最后的类型应该是Universal Distribution才对。那个Distribution的证书是没有用的。
  • 运维按照普通账号的操作方式来套用了,给了我们Development模式的Provisioning Profile,手机的UUID也没有加,所以出现了测试同学无法安装的问题。

对应措施

  • 知道了原因,改起来就快了,直接用新的Universal Distribution模式的Provisioning Profile来签名就可以随便安装了。
  • 企业版只是作为内部的试用版发布,没必要调试,所以Development模式暂时不准备启用。要添加手机的UUID,直接用普通版的就可以了,没有必要上企业版。
  • 自己macp12要导出,让运维导到打包服务器的mac

参考文章

苹果企业账号发布APP详解——通过自己网站分发应用
这篇文章不错,可以照着做,是一个操作手册

iOS App 签名的原理
对苹果的签名机制研究得比较透彻。值得好好看看

你可能感兴趣的:(关于企业版账号的备忘)