美文网首页
iOS企业版证书到期

iOS企业版证书到期

作者: 代码移动工程师 | 来源:发表于2018-10-26 16:35 被阅读18次

    近日有用户表示企业版的几个APP相继出现了闪退,用户表示没有升级过iOS系统,之前使用也没有出现什么异常。我就意识到不好,貌似去年这个时间段就出过类似的事,但是当时因为我手滑,犯了更大的错,导致并没有注意到这是个问题,具有潜在的风险。仔细研究了一下,并且也拨打苹果客服进行了验证,得到的结论如下:

    1,企业版帐号(年费$299,enterprise)每个distribution certificate(分发证书) 3年到期;
    2,用企业版帐号签名的APP,它的provisioning profile(预配置文件)有效期是1年;
    3,个人开发帐号(年费$99,personally)上述证书没有有效期,但是如果到期不续费,APP会被自动下架
    
    

    对于企业版帐号或者APP provisioning profile过期的问题,苹果客服回答只能通过在到期之前对APP进行update来避免用户使用中出现问题。(我在网上看到有苹果MDM服务,可以在线update证书,没有用过,也没仔细研究)

    那么问题的解决方法就是,每年都必须在证书(distribution certificate或者APP provisioning profile)到期之前,对企业证书发行的APP进行update操作。

    苹果客服还建议,创建两个distribution certificate(一个帐号最多可以创建2个分发证书)两个时间是交叠的,在其中一个到期之前,使用另外一个签名APP并提示用户进行update,即可以避免证书到期还没有更新导致的APP启动后闪退的问题。

    另外,我还注意到一个问题,provisioning profile是打包进ipa的,它在里面写明了APP使用的有效期(创建时间,过期时间和使用期限),至于具体是什么时间,与打包日期有关,与创建这个provisioning profile的时间有关。

    对于provisioning profile已经过期的APP,再次打包时,选择cerficate后,provisioning profile中的时间就是当前打包的时间;但是对于那些provisioning profile还没有过期的APP,再次打包,还是使用旧的provisioning profile,creationTime(ExpirationDate)还是之前创建或者update时的时间。这个过期时间有可能与在member center上这个APP中查看到的时间不一致(有可能是生成了新的provisioning profile后,并没有安装到Xcode中)

    还有一种情况,如果APP没有特殊的capabilities,那么就可以使用通用的provisioning profile,这个通常是XC:*,它的时间也是一年有效期。

    因此,如果不能十分确定每一个打出来的ipa的有效期(过期时间),而又需要关注它具体什么时候需要强制用户update,最好是在要发行的ipa生成之后,查看其中的provisioning profile。具体方法:

    1,解压ipa:右键->打开压缩包;
    2,进入解压后生成的Payload目录;
    3,右键app->显示包内容
    4,找到文件:embedded.mobileprovision
    5,用查看文本文件的工具打开这个文件,并转换编码为UTF-8
    
    

    转换为UTF-8后,这个provisioning profile文件大部分内容都是可读的,可以查看其中的CreationDate 和 ExpirationDate 是不是预期的时间,或者记录此时间,并在此之前安排用户update。

    一旦用户错过了update,导致APP已经开始闪退了怎么办?

    一个有效的解决办法是:调整用户设备时间,退回到APP过期之前。
    
    

    这样APP就仍然是可以使用的状态,并不会闪退,如果APP其中包含升级的方式,连接等,用户就可以直接在APP中进行升级了,否则可能需要给用户提供其它的方式请用户重新下载。当然这些都是升级,并不需要用户删除原来的APP。

    只不过,绝大多数用户都不喜欢调整自己设备的时间的,调整了别忘了调整回来,否则可能会导致很多奇怪的问题,比如push获取不到token之类~

    ==============

    近日发现个人开发者账户(Personal, Individual)也即将到期,又仔细查看了一下Apple关于证书expire和remove的说明,贴图如下:

    image.png

    说明:
    1)Enterprise 开发者账号,distribution certificate过期(或手动revoke)后,使用此证书签名打包的所有app将不能使用(打不开),需要重新生成证书并打包新的app进行安装;
    2)Company或Personal(Individual)开发者账号,distribution certificate过期(或手动revoke)后,如果membership(年费)有效,已经上架的app不会受到影响,但是下次发行或者更新app时,需要生成新的证书并使用。

    相关文章

      网友评论

          本文标题:iOS企业版证书到期

          本文链接:https://www.haomeiwen.com/subject/iykltqtx.html