在免费和付费版本之间保存数据

时间:2014-01-22 16:37:51

标签: ios icloud

我将发布我的应用程序的付费和免费版本,基本上可以保存图片和一些元数据。如果用户从免费版本开始并升级到付费版本,我希望他们在免费版本中创建的数据在他们获得付费版本时就在那里。我必须做的唯一的想法是将数据备份到iCloud,并为两个应用程序提供相同的iCloud备份地址,但是有更简单的方法吗?

4 个答案:

答案 0 :(得分:5)

我在一些应用程序中执行您的要求。您可以共享数据的基本方法是使用名为粘贴的私有粘贴板。只要两个应用程序来自同一个开发人员,两个应用程序就可以共享专用的粘贴板。

基本思想要求lite和付费版本都有自己的自定义URL方案。用户运行付费版本。付费版本查找精简版的URL方案。如果有,则显示“数据传输”按钮。当用户点击按钮时,您的应用程序大致执行以下操作:

  1. App A(完整版)查找App B(精简版)的自定义URL方案。
  2. 如果找到,请在适当的地方显示“转移”按钮。
  3. 用户点击App A中的按钮
  4. App A启动应用B,其网址为“将您的数据发送给我”。
  5. App A退出,App B已启动。
  6. App B处理网址请求。
  7. App B将其数据打包并放入一个名为UIPasteboard(名称硬编码到App A和App B中)。
  8. 应用B启动应用A,其网址为“您有数据”。
  9. App B存在且App A重新启动。
  10. 应用程序处理URL请求。
  11. App A从粘贴板获取数据,将其从粘贴板中删除,将数据安装到自身中并刷新。
  12. App A通知用户转移已完成,建议用户删除App B.
  13. 用户对这是多么容易感到高兴。
  14. 这个过程对代码来说并不简单,但却带来了琐碎的用户体验。在iCloud存在之前,我想出了这个。

    可以修改此过程以使用iCloud而不是UIPasteboard。但这有一个缺点,即要求用户登录iCloud并连接到Internet。使用粘贴板都是本地的。

答案 1 :(得分:1)

您可以通过远程服务器保存用户信息(可能通过用户名和密码登录)。这可以通过将用户元数据保存到XML / plist然后上传它来完成。然后,您将通过例如检索现有帐户选项检索付费版本上的用户信息。

答案 2 :(得分:0)

由于这两个应用程序都位于自己的沙箱中,因此可能无法在它们之间共享本地数据。我甚至不确定相同的iCloud备份是否可行。

您可以只提供一个应用,但实施应用内购买以激活完整版本?

答案 3 :(得分:0)

请注意,将应用从一个版本升级到另一个版本不会清除用户首选项中的数据。升级应用程序时,存储在用户默认值或本地存储(SQLite或核心数据)中的数据不会丢失。请检查它是否对您的情况有帮助。