iOS开发知识小集日常小知识点

无法更新iOS企业包

2018-07-12  本文已影响106人  萧城x
Screen Shot 2018-07-12 at 下午8.43.31.png

如何当我们的app检查到有更新的时候通过itms-service协议 系统就会弹出一个系统级别的UIAlertView(就算APP死了弹窗还在),点击确定之后就是APP terminate by signal 9 自动退出,开始更新APP。

BUT!!

在iOS11.2 并不是这样的 点击确定之后弹窗是消失了,APP不会 自动退出。就傻傻的没反应。也不会开始更新的动作,只有通过点击Home键和杀死APP,退到后台,更新程序才开始运行。
我在百度和简书一直搜索不到相似的文章,苹果开发论坛可以搜索到有人也遇到相同的事情,却没有附上解决办法。

1.itms-service 协议

苹果好像已撤掉文档了。

2.监听UIAlertView

系统级别的无法监听到,stackOverFlow也有人跟我一样的想法。给出另外的办法,亲测不行。
https://stackoverflow.com/questions/27652416/itms-services-protocol-get-click-result-cancel-or-install

3.让APP自动退出

可以调用exit(0) 直接杀死app。但是如果用户选择了取消更新,就不应该退出APP。

4.私有API

查下有什么强大的API可以帮到我们。

查了2天终于在一篇文章找到解决
https://stackoverflow.com/questions/25913834/ios-8-openurl-itms-services-does-not-exit-current-app

While forcing the app to crash will technically work, a much better solution (allowing the user to retain the state of the application) would be to simply background the app launching the itms-services link by executing the following.

[[UIApplication sharedApplication] performSelector:@selector(suspend)];

We use this in an app used for distributing test builds to our testers and it works very well, and eliminates the confusion of a tester trying to install an app and having the app stay in front. It also allows them to return to our distribution app and have it pick up where they were.

打开更新弹窗之后,让程序自己推到后台,不是杀死APP。
如果用户选择了确定更新,就会开始更新。
如果用户选择了取消,那用户也可以从后台恢复APP。

总算解决问题,因为是分发企业版,无所谓调用私有API

上一篇下一篇

猜你喜欢

热点阅读