【问题标题】:iOS 8 Enterprise apps updateiOS 8 企业应用程序更新
【发布时间】:2014-12-02 04:09:10
【问题描述】:

我正在开发一个分发 itms-services 的企业应用程序。

此应用有一项服务,可让用户知道何时有更新,因此当用户按下更新按钮时,应用会调用 itms-services 以下载并安装最新版本。

在 iOS 8 之前,当从应用程序调用 itms-services 时,系统会关闭应用程序并启动更新过程。现在有一个烦人的变化,应用程序不再关闭,用户不知道更新过程已经开始。

我想在更新开始后关闭我的应用程序,就像在 iOS 8 之前一样,但我不知道这是否可能,我想添加一个反馈,说明应用程序已更新,但这并没有对我来说似乎是一个很好的解决方案。

有人知道更好的解决方案吗?

更新:这个应用也在 App Store 中分发,所以我不能使用任何可能导致 Apple 拒绝的东西。

谢谢

【问题讨论】:

  • 可以在更新开始后尝试拨打 Home 键,还是尝试使用 关闭应用? ' [[NSThread mainThread] 退出] '
  • 是的,用户可以使用主页按钮。可以调用 [[NSThread mainThread] exit] 吗?你知道苹果是否会批准这一点吗?此应用也在 App Store 中分发。
  • [[NSThread mainThread] exit] 是关闭应用程序的正确方法!但我不知道您是否真的需要在更新之前关闭它。更新的原生方式就是回家
  • 我想关闭,因为现在似乎什么都没有发生,反馈可以解决这个问题,但我想知道是否有合适的方法来做到这一点。
  • 据我所知,主页按钮是更新前的正确方法,但在关闭应用程序方面,[[NSThread mainThread] exit] 是正确的方法!你可以做一些研究,看看别人怎么说!

标签: ios ios8 enterprise in-house-distribution


【解决方案1】:

你可以打电话

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

在打开您的 itms URL 后立即将应用置于后台。

【讨论】:

  • 这对我来说非常有效。 Franco:你为什么不使用这段代码,但确保在为应用商店构建时删除它?无论如何,这是一个不同的构建,对吗? (至少必须是不同的配置文件)。添加预处理指令以在 App Store 构建中将其删除,Apple 不会拒绝您的应用。
【解决方案2】:

iOS 8 中的更新过程在更新完成之前不会停止应用程序的执行。如果您在更新过程中观看主屏幕,您将看到同一个应用程序的两个图标。更新完成后,“更新中”图标将消失,您的应用也已更新完毕。

如果您要发布企业应用程序,您可能没有经过 Apple 的审核流程。您可能会考虑在触发应用内更新流程时使用私有方法来关闭您的应用程序。如果您愿意,您甚至可能导致崩溃(例如尝试访问超出范围的数组索引),尽管您可能会收到崩溃报告。 ;)

【讨论】:

  • 我不能使用私有方法,因为我在 App Store 分发了同一个应用程序,只有我们的一些客户使用企业分发。关于第二个图标,这不是我的情况,我读到有人说当捆绑 ID 不同时可能会创建第二个项目 (stackoverflow.com/questions/25772664/…)。当我的应用程序正在运行时,下载过程开始并且安装过程只会在应用程序未在前台运行时开始。谢谢
  • 你确定 iOS 8 上只有一个图标吗?这些图标不一定会出现在主屏幕的同一页面上。以我的经验,自从更新到 iOS 8 以来,总是有两个——即使包标识符没有改变。第二个图标会一直显示,直到更新完成然后消失。
  • 在我的情况下,新图标正在替换当前图标,如果停止执行将是完美的。
猜你喜欢
  • 2014-11-04
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
相关资源
最近更新 更多