【问题标题】:App Store app updates: force uninstalling the previous versionApp Store应用更新:强制卸载旧版本
【发布时间】:2013-10-21 12:38:43
【问题描述】:

我对 App Store 发布的应用程序有疑问。我即将提交一个iOS应用程序,我想知道在提交未来的应用程序更新时,是否可以在安装更新之前强制卸载以前的版本?如何管理更新?

谢谢!

【问题讨论】:

  • 你为什么要这个?你的目标是什么?
  • @rmaddy 最重要的是,我会问这个问题,以防将来的应用程序更新对 sqlite 数据库文件和结构进行重大更改
  • @rmaddy 我在开发时发现了一些问题,当我对数据库表进行更改并且我没有先卸载以前的版本时...
  • 必须正确处理包括对数据库架构的更改的任何更新。我在自己的应用程序中执行此操作。当我打开一个数据库时,我会检查它是什么版本的架构。如果它较旧,我会在其上运行更新脚本以使其成为最新版本。
  • @rmaddy 谢谢!我在哪里可以找到这样的例子?处理这些更改的正确位置是什么:didFinishLaunchingWithOptions: 方法或applicationDidBecomeActive: 方法?如何在每次更新安装时只执行一次此数据库更新?

标签: ios app-store updates uninstallation


【解决方案1】:

您需要将应用更新作为对现有应用的更新提交,而不是作为新应用提交。无需卸载旧应用程序。更新将取代它。

确保更新向后兼容。更具体地说:保留用户设置和您的应用在本地存储的任何其他数据。

如果您出于某种原因确实需要提交新应用来替换旧应用,您可以使用自定义 URL(记录为 here)来强制用户使用新应用。

您需要进行两项更改:

  1. 在新应用中:注册自定义 URL。
  2. 在旧应用程序中:通过调用here 所述的自定义 URL 来启动新应用程序

【讨论】:

  • 谢谢。我担心后续应用程序更新中可能会发生 sqlite 数据库更改:如果应用程序更新而不是首先卸载,我不确定应用程序更新是否会导致 sqlite 文件不一致。我对 sqlite 数据库更改的意思是表字段和/或表结构的更改,而不是数据本身的更改...您要链接的内容仅在 iOS7 中受支持,对吗?
  • NSUserDefaults 值会在应用更新后保留吗?如果没有,我怎么能保留它们?
  • 是否有任何 Apple 的文档处理应用更新的管理、如何处理它们以及如何使更新向后兼容等等?
  • 您的所有应用数据都会被保留。如果您对表/字段进行更改,则由您来正确处理更新。提交更新:developer.apple.com/library/ios/documentation/IDEs/Conceptual/…
【解决方案2】:

我发现您担心sqlite数据库更改。您可以在新版本项目中更改sqlite文件的名称。

【讨论】:

  • 谢谢,您知道我在哪里可以找到处理此问题的示例吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 2011-12-25
  • 2012-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
相关资源
最近更新 更多