前言
iOS端APP测试时,需要针对不同情况,打不同的测试安装包,如比较常用的有In-house测试包、debug包,企业包,Testflight包、APP store包等;这些包有什么区别,什么情况下用哪种包,下面小编将为大家进行详细介绍~
iOS开发者账号的分类
iOS开发APP都需要申请苹果开发者账号,开发者帐号分为:个人开发者账号($99/年)、公司开发者账号($99/年)、企业级开发者账号($299/年); 个人帐号/公司帐号:不能够打包直接在设备上运行,能够上传App Store,经过苹果审核通过后才能出现在App Store被用户搜索下载(公司帐号可以创建多个子账号,其他和个人帐号没有区别)。 企业帐号:企业开发者账号是不能发布APP到App Store的,但苹果允许企业账号签名的APP可以直接发布APP,无需经过苹果审核,签名后生成一个新的安装包,然后传到分发平台供所有iPhone用户下载安装。这种发布方式,可以绕开目前苹果严苛的审核政策,不管是APP的规模性测试,还是大规模的测试运营,都需要一个企业级开发者账号。 教育账号:费用0美元,只能是教育机构使用。必须是苹果iOS开发者计划授权机构。不能对外正式发布iOS应用程序。 四种不同账号区别总结如下:
*DUNS编码:是一个独一无二的9位数字全球编码系统,相当于企业的身份识别码(就像是个人的身份证),被广泛应用于企业识别、商业信息的组织及整理。
iOS APP包的安装方式
由以上介绍可知,不同的苹果开发者账号对应使用不同的证书类型,而安装不同的包需要不同的证书签名,因为苹果的安全策略,通过签名机制保证手机上的每个App都是经过苹果认证的。 iOS App的安装方式有四种: 1)通过App Store安装; 2)开发者可以通过Xcode安装(真机调试); 3)Ad-Hoc 测试证书打包的App,数量限制100; 4)In-House 企业版证书打包App,信任企业证书后可以使用; 下面介绍一下这四种安装方式以及它们的区别: 方式1:通过App Store安装 签名机制:苹果官方生成一对公私钥,在 iOS 里内置一个公钥,私钥由苹果后台保存,我们传 App 到AppStore 时,苹果后台用私钥对 APP 数据进行签名,iOS 系统下载这个 APP 后,用公钥验证这个签名,若签名正确,这个 APP 肯定是由苹果后台认证的,并且没有被修改过,也就达到了苹果的需求,即保证安装的每一个APP都是经过苹果官方允许的。 方式2:通过Xcode安装真机调试 这种安装方式不加限制,可能会导致被滥用(不通过App Store,只通过第三方发布平台就能安装),因此苹果加了两个限制:在苹果注册过的设备才可以安装;签名只针对某一个App。 方式3:通过Ad-Hoc正式打包安装 Xcode打包App生成ipa文件,通过iTunes或者蒲公英等第三方发布平台,安装到手机上。 方式4:In-House企业版证书打包 企业版证书签名验证流程和Ad-Hoc差不多。只是导出安装包时,应用所使用的证书不同。企业版不限制设备数,而且需要用户在iOS设备上手动点击信任证书。 除了方式2可以直接debug到手机端,其他都是需要证书签名打ipa包进行安装,方式1、3和4的区别如下表:
打包类型的选择及应用场景
iOS APP打包最常用的是Xcode开发工具,在使用Xcode打包时,要想打不同类型的测试安装包,需要在archive阶段导包时选择不同的打包类型,下面是4种选项导出的包的含义:
1)Savefor iOS App Store Deployment 准备上传App Store的ipa包,打包证书为公司账号或个人账号的发布证书。这个包也就是平时正常用户使用的线上包,所有在发布范围内的iPhone用户都可以使用。 2)Savefor Ad Hoc Deployment 苹果的官方解释是:To distribute your app to users with designated devices, select“Save for Ad Hoc Deployment.” The app will be code signed with the distributioncertificate. 根据官方文档说明,首先它是发布证书打包出来的,第一个选项App Store也是发布证书创建,只是第一个选项是发布到App Store,Ad Hoc是不能发布到App Store,这种包是平时测试中最常用的包,需要装的设备必须在开发者网站注册设备ID,最多100个。测试生产环境的推送选择该方式打包。 3)Savefor Enterprise Deployment 生成企业包 企业版应用的ipa包,用于发布到自己服务器分发的应用,安装设备个数不受限制,也可直接发给你的客户或测试人员安装,无需在帐号中添加设备的udid。 4)Savefor Development Deployment 苹果的官方解释是:To distribute your app for internal testing, select “Save forDevelopment Deployment.” The app will be code signed with your developmentcertificate. (针对内部测试使用,主要给开发者的设备(具体也为在开发者账户下添加可用设备的udid),该app包是开发证书编译的) 针对内部测试分发的ipa包,和Ad Hoc类似,都是测试用的,只不过这个选项的打包证书为开发证书。测试开发环境的推送选择该方式打包。
本次就先记录这么多,下一次再见。
希望大家能有所收获,一起进步、互相学习!