ios 8 openUrl itms-services不会退出当前的应用程序

在iOS 6或7中,当我使用itms-services://XXXX的URL调用UIApplication openUrl来安装应用程序的新版本(使用带有ipa文件的企业部署)时,应用程序退出到主屏幕。

在iOS 8中,这不再是这种情况。 现在应用程序继续运行,就像没有任何事情发生一样,但是如果我进入主屏幕,我可以看到我的应用程序图标变成灰色,下载约66%的饼图和下面的文本"Downloading..." 。 如果我现在等待一段时间(不到一分钟),应用程序安装正确,我可以再次启动我的应用程序。

有没有其他人经历过这种行为? 有没有人看到有关此文件? 只要有logging,我可以接受行为改变,但是我没有看到有关这方面的任何文件。

是的,在iOS8上单击Safari浏览器中的下载链接时,也会得到相同的行为。

我不确定他们为什么介绍这个改变,但是没有真正的解决办法(除非你强迫你的应用崩溃,像exit(0);

另外, itms-services urlscheme没有logging,在技术上是私有API。 根据经验,您不能将应用程序提交给使用它的App Store。

虽然强制应用程序崩溃在技术上会起作用,但是更好的解决scheme(允许用户保留应用程序的状态)将仅通过执行以下操作来启动启动itms-services链接的应用程序。

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

我们在用于向我们的testing人员分发testing版本的应用程序中使用它,它运行得非常好,并且消除了试图安装应用程序并让应用程序停留在前面的testing人员的混淆。 它也可以让他们返回到我们的分配应用程序,并让它拿起它们在哪里。

我也经历过类似的事情。 我有一个内部应用程序商店的网页,当我点击链接,我会得到一个提示,询问我是否要安装,当我说是的Safari只是坐在那里。 该应用程序正在主屏幕上下载,但在IOS 7 Safari浏览器将推到后台,你可以看到你的应用程序正在下载到其进展。 现在看来似乎没有任何事情发生。 我很想纠正这一点。 itms-services协议使用的.plist文件中可能已经发生了一些变化。 这个协议不是私有的,只是为企业部署而保留的。