iOS 中线上的App 可以分为企业版本和App Store版本
企业版的更新
-
现象:iOS企业版证书到期导致APP 无法访问,也就是闪退现象
-
原因:用企业版帐号签名的APP,它的provisioning profile(预配置文件)有效期是1年;
-
敲黑板 :我还注意到一个问题,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:右键把.ipa包改成.zip 然后解压;
2.进入解压后生成的Payload目录;
3右键app->显示包内容
4.找到文件:embedded.mobileprovision
5.用查看文本文件的工具打开这个文件,并转换编码为UTF-8
-
解决办法:必须在到期之前做一下工作(体验好一点就是,前一个版本就做好更新)
A. 更新企业证书 描述文件
1.首先登陆Apple Developer官网开发者账号登陆。登录网址[https://developer.apple.com/](https://developer.apple.com/)点击Account输入账号登录
2.点击Certificates, IDs & Profiles
3. 点击Provisioning Profile 下面的ALL
4.找到即将过期的Provisioning Profile,点击Edit
5.点击Generate
6.下载更新的Provisioning Profile文件,重新打包即可
7.安装下载好的Provisioning Profile文件
敲黑板:对于还没过期的证书,如果选择Automatically manage signing 打包,Xcode只会用旧的provisioning profile,creationTime(ExpirationDate)还是之前创建或者update时的时间 进行打包
image只能用指定描述文件的打包方式才可以
imageB. 更新推送证书
推送证书都是独立申请的 的证书都是开了推送权限而已
那么理论上是推送证书过期用户那边会爆一个aps证书的错误 可是官网上的推送证书是可以多个的
因此最保险的做法是 先添加一个推送证书和原来的共存 这时候上新版本 原来的过期以后删除掉那个证书
1.删除MAC上钥匙串访问中对应的推送证书。
2.登录苹果开发者后台,删除已过期推送证书(mac上删除之后可能会消失),并下安装到Mac钥匙串访问中。
3.然后为对应App ID生成新的推送生产证书,点击App IDs
找到rider.app,然后点击编辑按钮
4.进入如下页面,找到create certificate,点击该按钮
5.点击continue
6.选择本地的CSR证书提交
7.生成本地CSR文件步骤,找到钥匙串,点击屏幕左上角的”钥匙串访问”->”证书助理”->”从证书颁发机构请求证书”
8.点击下载
9.点击下载后找到我们刚才下载的.cer文件,直接双击
10.右击我们的证书,选择“导出
11.选择我们需要保存的地方,要注意下面的文件格式选择“.p12”格式的
12.进去推送平台,找到你的app,重新上传就可以
- C. 重新配置文件并打包
喝杯茶先,接下就讲讲App Store 相关的证书更新
证书过期是不影响App Store,已经安装的可以正常使用,也还可以从App Store下载。(除非你的开发者账号过期了,那得续费了)
过期的话,直接revork过期的证书,然后重新生成证书和Provisioning Profile文件,打包重新上架即可!
影响到是推送的证书而已,推送的制作还是跟企业版版推送证书过期一样,重新制作,上传到对应的推送平台即可。
网友评论