ios 8 openUrl itms服务不退出当前应用

ios 8 openUrl itms服务不退出当前应用,ios,ios8,ipa,openurl,Ios,Ios8,Ipa,Openurl,在iOS 6或7中,当我使用itms的url调用UIApplication openUrl时,应用程序将退出主屏幕-services://XXXX安装新版本的my app(使用带ipa文件的企业部署) 在iOS 8中,情况不再如此。现在,应用程序继续运行,就像什么也没发生一样,但如果我进入主屏幕,我可以看到我的应用程序图标变灰,下载饼图大约完成了66%,下面的文本是“下载…”。如果我现在等待一段时间(不到一分钟),应用程序安装正确,我可以再次启动我的应用程序 还有其他人经历过这种行为吗?有人看过

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

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


还有其他人经历过这种行为吗?有人看过关于这方面的文件吗?只要有文档记录,我就可以接受行为更改,但我还没有看到任何相关文档。

是的,在iOS8上单击safari中的下载链接时,您也会得到相同的行为

我不知道他们为什么要引入这一变化,但实际上并没有办法解决(除非你强迫你的应用程序崩溃,比如退出(0);)


而且,
itms服务
url方案没有文档记录,在技术上是一个私有api。根据经验,你不允许向使用它的应用商店提交应用。

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

虽然强制应用程序崩溃在技术上是可行的,但更好的解决方案(允许用户保留应用程序的状态)是通过执行以下操作,将启动itms服务链接的应用程序设置为后台

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

我们在一个用于向测试人员分发测试构建的应用程序中使用了它,它工作得非常好,消除了测试人员试图安装应用程序而让应用程序保持领先的混淆。它还允许他们返回到我们的分发应用程序,并让它在他们所在的位置接收信息。

我也遇到了同样的“困难”。我们已经构建了一个应用程序来提供内部分布式应用程序(类似于内部AppStore)。在iOS7中,您收到系统对话框的通知,询问用户是否安装应用程序。在iOS8中,不再发送这些通知。之前,我们可以启动计时器并轮询要安装的应用程序的预期URL方案,以向用户提供一些活动指示器。对于iOS8,我甚至无法区分用户是否选择取消安装:(也找不到任何关于这方面的文档。itms服务没有文档记录吗?有早期的文档,但该链接现在已失效。苹果删除了itms服务的所有文档吗?我在任何地方都找不到它!不推荐东西是一回事,但只是隐藏它是不好的。是的,不好……我想我记得看到了一些东西。)很久以前,但再也找不到它了,所以我认为我看到的可能不是苹果官方文档……文档真的很奇怪,当iOS7推出时,他们要求清单是https链接,但没有真正明确说明。我很确定有关于这一点的官方文档,即使是Xamarin(我正在使用)有一个链接,指向现在已死亡的同一页:。在《iOS部署参考》(iBooks中免费)一书中它的首页上有iOS 8,这应该表明它也适用于iOS 8,有关于如何使用itms服务链接构建网站以分发应用程序的说明。所以有一些关于iOS 8的itms服务的文档,但我找不到任何参考文档。太棒了。我假设这是一个私有API?显然没问题,但我只是想确认一下……您是否在调用
openURL:
后立即调用此功能?因为我不确定如果出现这种情况,安装弹出窗口是否仍会显示?是的,就在openURL之后-弹出窗口仍会显示,通常是在应用程序挂起后。我们只在iOS 8及以上版本中使用,因为没有需要挂起旧版本中的应用程序。我不会在前往应用商店的应用程序中使用呼叫,但如果您的应用程序正在安装其他应用程序,我不建议尝试将其放在应用商店中。如果我有相同的问题,但使用Safari浏览器,该怎么办?不幸的是,我没有Safari的好解决方案。我怀疑是否存在任何问题你想在Safari中这样做会使它崩溃,所以你可能需要在网页上发送一些消息,让用户知道他们需要在点击安装链接后点击主页按钮。
suspend
不在Swift中。你知道吗?