6

它是如何工作的 - 该应用程序是对跨平台工作的服务的订阅。在 iphone 上,初次购买将获得 30 天的完整功能,然后在 30 天后,您将无法做某些事情,直到您通过应用内购买购买订阅。

我需要什么- 我需要知道它是否是第一次运行,以便我可以将用户信息添加到数据库中。或者因为它是跨平台的,他们可能已经支付了订阅费用,所以我需要为用户已经存在的订阅增加 30 天。

我现在在做什么- 目前我将 identifierForVendor 存储在远程数据库中,并且在 NSUserDefaults 中有一个 bool 检查以查看 1. 是否是第一次运行和 2. 如果是第一次运行以允许用户添加自己到数据库进行 30 天的完整使用,或将 30 天添加到他们现有的订阅中。

问题- 问题是如果用户删除应用程序然后重新安装它,NSUserDefaults 也将被删除,并且 identifierForVendor 将发生变化,这将允许用户通过删除并重新安装免费的订阅再增加 30 天应用程序。

理想的解决方案 我本来想订阅应用程序,但不知道如何在最初购买应用程序时查看收据并将用户插入远程数据库。此外,我真的不知道如何设置不是应用内购买的订阅。我还考虑过让应用程序免费,然后他们可以使用应用内购买来购买服务,但是应用程序没有用,因为它无法连接到远程服务器以首先建立数据。

底线我想做以下其中一项

  1. 首次购买时进行订阅(我需要能够检测购买是否有效,以便将用户信息输入远程数据库)
  2. 使应用程序免费,然后使用应用程序内购买来添加订阅(是否可以接受免费应用程序在您订阅之前不会做任何事情?)
  3. 保持现在的状态(但要找到一个更永久的解决方案来解决 identifierForVendor,并且 identifierForAdvertising 也不起作用,因为它可以关闭)
4

1 回答 1

2

这会对你有很大帮助。基本上它是在 NSUserDefaults 之后模式化的 Keychain 的包装器。它帮助了我很多。将东西存储在钥匙串中可以让它们在应用程序重新安装后保持不变。

https://github.com/carlbrown/PDKeychainBindingsController

该项目旨在使使用 Mac OSX 和 iOS 钥匙串像 NSUserDefaults 一样简单。

它是一个围绕 Mac OSX 和 iOS Keychains 的 KVO 兼容 Cocoa 包装器,这个包装器的模型是 NSUserDefaults,因此目的是对于您通常想要调用的常见情况:

[NSUserDefaultsController sharedUserDefaultsController] 你应该可以调用

[PDKeychainBindingsController sharedKeychainBindingsController] 对于您通常会调用的常见情况:

[NSUserDefaults standardUserDefaults] 你应该可以调用

[PDKeychainBindings sharedKeychainBindings]

于 2012-12-21T21:53:42.973 回答