iOS的签名机制很复杂,各种证书,Provision Profile,entitlements,CertificateSigningRequest,p12,AppID,这篇文章我从概念出发,一步一步推出为什么会有这么对概念,希望能有助于理解iOS的App签名的原理,以及udid签名跟超级签名到底那个稳定。
更稳定的udid签名跟超级签名就在iOS出来之前,在主流操作系统(Mac,Windows,Linux)上开发和运行软件是不需要签名的,软件随便从哪里下载都能运行,导致平台对第三方软件很难控制,盗版盛行。苹果希望解决这样的问题,希望iOS平台对第三方App有绝对控制权,一定要保证每一个安装到iOS上的App都是经过苹果官方允许的,怎么保证呢?就是通过签名机制。
要实现这个需求很简单,最直接的方式,苹果官方生成一对公私钥,私钥由苹果后台保管,公钥内置到iOS设备里,在我们将App上传到App Store上时,苹果后台使用私钥对App进行签名,iOS设备下载这个应用后,用公钥验证这个签名,若签名正确,则说明这个App是经过苹果后台认证的,并且没有被修改过,这样也就达到了苹果的目的:保证iOS设备安装的每一个APP都是经过苹果官方允许的。
功能优劣区别:
苹果超级签名
简单来说,就是把添加苹果设备UDID进行真机测试的过程,实现了自动化。为超级签名需要用到个人或者公司的苹果开发者账号。
超级签名的优点就是非常稳定,不会像企业证书签名容易掉签问题,而且不用信任,安装后直接可以启动!追求稳定的很适合!
苹果企业签名
直接使用企业证书打包即可安装,最大的优点就是无需添加设备的UDID,没有安装数量限制。最大的缺点就是不稳定,所以很多把目光转向超级签名,虽然成本高。
文章出自云思盈科 http://www.yunthink.com