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

时间:2014-09-18 13:19:55

标签: ios ios8 ipa openurl

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

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

还有其他人遇到过这种行为吗?有没有人见过这方面的文件?只要记录在案,我就可以接受行为改变,但我没有看到任何关于此的文件。

3 个答案:

答案 0 :(得分:6)

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

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

我们在用于向我们的测试人员分发测试版本的应用程序中使用它,它运行良好,并消除了测试人员试图安装应用程序并让应用程序保持在前面的混乱。它还允许他们返回我们的分发应用程序并让它在原来的地方继续。

答案 1 :(得分:0)

是的,现在在iOS8上单击safari中的下载链接时也会出现相同的行为。

我不确定他们为什么会引入这种更改,但实际上没有办法(除非你强迫你的应用程序崩溃exit(0);

此外,itms-services url方案没有记录,从技术上讲是私有api。根据经验,您不允许将应用程序提交给使用它的App Store。

答案 2 :(得分:0)

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