一、前言
作为一名iOS开发者,为了实现打包和分发的自动化,想必你一定接触过一些脚本打包的工具,例如,github上面shenzhen的ipa命令、Facebook的xctool等。
使用这些工具,往往会使我们的持续集成变得容易,但是这些工具也存在一些缺点。它们往往需要你指定一些参数去完成打包和分发,在以往使用xcode手动打包的时候,在xcode项目中只需要将一些code sign和provisionfile选项配置为auto,然后导出ipa包的时候指定 AD Hoc或者appstore类型即可,现在就需要手动完成了。在你忽略了一些参数的时候,就可能产生一些问题。
二、现象
本人在使用shenzhen打的包上传appstore后缺失beta版权利,即beta entitlement missing。
#如何确认
打包后执行
unzip xxx.ipa
codesign -d --entitlements :- Payload/xxx.app
查看是否有"beta-reports-active: true"
三、原因
.mobileprovision文件使用错误:使用了AD Hoc的provisonfile,应该使用XC(appstore)的provisonfile。
使用AD Hoc的provisonfile,依然可以提审核和发版。