iphone - 处理从 iPhone 应用程序 'lite' 到 'pro' 版本的数据迁移

标签 iphone xcode version app-store

我的 iPhone 应用程序开发已接近尾声,并将发布“精简版”(支持广告)版本和“专业版”(无广告,可能在某些时候具有附加功能)版本.

我遵循了此处和其他地方有关创建多个目标等的建议,并且能够毫无问题地构建这些目标。

但这确实让人想起一个问题:处理从精简版应用程序到专业版的过渡的最佳、最用户友好、可接受的方式是什么?

据我所知 - 如果我的任何假设有误,请纠正我 - 有两种可能的方法可以做到这一点:

  1. 为每个应用程序提供自己的 bundle 标识符(即 com.companyname.fooapplite 和 com.companyname.fooapppro)。这将导致两者被视为完全独立的实体。如果用户从一个移动到另一个,数据不会自动迁移,并且两者很可能同时安装在同一部 iPhone 上。

  2. 为每个应用程序提供相同的 bundle 标识符(即 com.companyname.fooapp),以便将它们视为本质上相同的应用程序。如果他们下载并安装该应用程序的精简版,它将被专业版覆盖。精简版的数据保留在专业版中。

后者对我来说似乎很理想 - 我无法想象有人在购买专业版后想要保留精简版 - 但这带来了一些问题:

  • Apple 是否允许选项#2?

  • 使用选项 #2 会导致我应该意识到的任何愚蠢行为吗?这两个版本在某种程度上互相影响。

  • 如果不允许,是否有建议的做法可以从基本上两个完全不同的应用程序迁移数据?我知道 StoreKit,但免费应用程序不支持它。

事实上,当前的应用程序并没有真正生成具有巨大值(value)的数据,最糟糕的情况是用户在升级到专业版后必须重新输入一些身份验证凭据。但今后,如果我要开发一个类似的应用程序来在本地存储有值(value)的数据,我想知道如何以无缝方式最好地转换用户及其数据。

谢谢

  • 杰夫

最佳答案

还有一个选项是通过 URL 将数据从精简版交换到完整版。向完整版本注册 myFullApp URL,并让 Lite 应用程序提供一个升级选项,调用该 URL 并在其中编码您想要交换的各种数据。

这确实需要用户启动您的 Lite 版本并点击按钮,但这也相当简单。

关于iphone - 处理从 iPhone 应用程序 'lite' 到 'pro' 版本的数据迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1513393/

相关文章:

ios - 正确存档带有扩展的 iOS 应用程序

java - 如何在没有序列的情况下在 pom.xml 中添加模块

c++ - 我正在学习 C++,我应该使用最新的编译器版本还是我的大学使用的编译器版本?

ios - 无法识别的选择器从 App Delegate 发送到实例

iphone - 在 TableView 中显示图像

iphone - 将电源按钮添加到计算器应用程序

ios - XCode:我可以用 xcconfig 中的值覆盖 CFBundleVersion 吗?

ios - 供应配置文件不包括应用程序标识符和钥匙串(keychain)访问组权利

ruby-on-rails - 制作脚本使用 1.8.7,Rails 使用 1.9.2

iphone - genstrings 不适用于 NSLocalizedString 的宏