【发布时间】:2012-03-18 08:50:10
【问题描述】:
完整版的 iOS 应用程序如何访问/复制免费版的数据库/设置?
我正在考虑提供我的应用程序的免费版本,但我看不到购买完整版的人如何从我的免费版本中访问数据?
【问题讨论】:
标签: iphone objective-c ios cocoa-touch
完整版的 iOS 应用程序如何访问/复制免费版的数据库/设置?
我正在考虑提供我的应用程序的免费版本,但我看不到购买完整版的人如何从我的免费版本中访问数据?
【问题讨论】:
标签: iphone objective-c ios cocoa-touch
iOS 上的所有应用都是隔离的。它们作为不同的 iOS 系统用户安装。一位用户无权访问另一位用户的文件。在过去,解决此问题的一种常见方法是enable iTunes file sharing。并告诉用户手动复制文件。
您最好使用免费增值模式来销售您的应用。使应用免费,并通过应用内购买解锁额外功能。这样,您的文件、文档、设置就不需要转移到专业版。解锁后应用本身成为专业版。
这是来自 Apple 的指南:https://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction/Introduction.html(虽然不是很直观)。
这里的演练:http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/ 非常有帮助。
最后但同样重要的是,请注意应用内购买是可破解的。所以请阅读:How to detect "IAP crackers"?、Verifying In App Purchase Receipt from Client、https://stackoverflow.com/questions/4715414/apple-in-app-purchase-verify-receipt、verify in app purchase、In App Purchase Receipt verification within app。
请注意,您应该设置一个服务器来验证 iap 收据。虽然它可以从应用程序中实现,但它并不安全。据我记得,你可以在 iOS 模拟器 v5.0 中通过 StoreKit 测试应用内购买,那应该是 Xcode 4.2。在此之前,只能在设备上进行测试。
@Dominik Hadl 提到您可以使用服务器来同步文件。操作通常很复杂。如果您更喜欢这个想法,您可以选择使用custom url scheme 从另一个应用程序启动一个应用程序以简化操作。请参阅以下步骤:
【讨论】:
我认为您可以做到这一点的唯一方法是将数据与某些服务器同步,注册设备并将数据同步回完整版本。
因为所有 iOS 应用程序都是沙盒化的,所以它们无法访问任何其他应用程序数据(除非您有越狱的 iOS)。
【讨论】:
由于多个应用程序可以共享同一个 iCloud 容器,我想说现在的最佳做法是“简单地”将数据存储在 iCloud 中。
(我将“简单”放在引号下,因为很容易将数据放入 iCloud 并取出;但如果您真的想要进行同步,您可能需要做的不仅仅是“我“将从 iCloud 加载并保存到 iCloud”,以便为用户提供最佳体验。)
【讨论】: