今天封板前测试同学测了推送功能,出现了很奇葩的问题。打了开发环境的包出来,结果同一套代码,使用安装包安装应用的设备收不到开发环境的推送反而能收到生产环环境的,通过真机调试的安装的应用表现正常没有错乱。然后就想是打包环节出了问题。

      我这儿打包一直有个问题是最近打不了adHoc的包了,每次都失败,尝试了为adhoc的配置文件选择不同的开发者都没有成功,所幸打develop的包还能顺利生成。只是有一点一直没有注意有时候选择的配置文件是“iOS Team Provisioning”,这是一个由XCode自动创建并管理的配置文件。有时候也器官怎么不是为该应用设置的配置文件,但最后能导出安装包也就没有在意。然而问题就出在了这里!

      既然问题出在打包环节只有一个地方有疑点,那就是配置文件是否真的选对了,配置文件是XCode自动管理的“iOS Team Provision..”,而无法选定我们在developer center中创建的配置文件“xxxx_dev”。为了验证是否之前打出的包是development还是adHoc,我让我的小伙伴打出一个adhoc包出来以给我打出的develop的包做比较,(另一个项目是他能打adhoc包 而我一直没成功)。但是在他那儿也不能生成adHoc包了,出错原因和我之前一样(如下图),然后开始去捣鼓配置文件,试着选择不同的开发者证书也没效果,然后就去配置选定的设备,当设备选择配置为select all时成功了。然后我们注意了一下 之前打包过程中最后选择的配置文件已由“iOS Team ..”变为了“xxxx_adHoc”。经测试该方式打出的包为adHoc包无误,在我Mac上也能顺利生成adHoc包。

      解决问题的方法发现后,重新配置dev的配置文件选定的设备为选择全部,打包工程中最后显示的也是我们自己创建的开发证书“xxxx_dev”,最终打出的包为development包无误。

     小记:打了三年的包了,没想到还会载跟头。一直以为导出(Export)的时候选择“Save  for ...”,  后面的流程一定会生成对应的包,也挺相信那个XCode自动生成并管理的配置文件“iOS Provisio...”。看来以后还是确保此处的配置文件选定为自己所创建为妙。

下图为被坑的地方:

ios 打包四个选择 ios打包和配置有关吗_Your account already

使用该方式打ahHoc包出错提示“Your account already has a valid iOS Distribution certificate”。一直以为是开发者证书选错了,原来是配置文件的设备没有selected all device。

ios 打包四个选择 ios打包和配置有关吗_ios 打包四个选择_02



附打包流程的正确姿势,XCode Version 7.3.1,日期2016年8月25日。

Product->Archive完成后(也可以从Window->Organizer中进入) 进入Archives。

1、选择右侧的"Export"按钮,选择打包的环境(下图中为开发环境),点击“next”进入下一步:

ios 打包四个选择 ios打包和配置有关吗_打包_03

2、选择开发者证书,选定后点击“Choose”,进入下一步。


ios 打包四个选择 ios打包和配置有关吗_Your account already_04

3、选择支持设备类型(仅限development 和 adHoc),一般选for all device。(此处注意会对下一步产生影响)。点击“next”,进入下一步。

ios 打包四个选择 ios打包和配置有关吗_打包_05


4、选择(或说查看)配置文件(Provisioning Profile),点击next就可以导出了(很简单只需选择保存位置)。此处有需要注意的地方:有时会出现配置文件是XCode生成并管理的配置文件“iOS  Team Provisionging ...” ,而不是你自己创建的配置文件的情况。解决方式是在开发者中心编辑该配置文件,设备选择全部,然后安装该配置文件,重新打包流程即可看到这个地方的配置文件是自己创建的配置文件。

下图才是正确的打开姿势!!!⬇️

ios 打包四个选择 ios打包和配置有关吗_ios 打包四个选择_06