2011-05-16 89 views
2

我想在我的应用中添加应用内购买功能。iPhone:应用内购买查询

我的应用程序包含许多功能。在免费版本中,我的应用程序的某些功能将可访问,并禁用某些功能。

我想要做的是,我想要启用所有的功能,一旦用户支付完整版本的我的应用程序。

如何在iOS钥匙串中存储标志?

我该怎么做?

是否有任何示例或良好的链接?

回答

3

的方法有很多,你可以做到这一点:

  • 使用自己的服务器,一旦应用程序被成功地购买了传递内容。
  • 使用iOS钥匙串存储一些标志。

我会在这里谈论第二点。我会假设你无法获得你自己的服务器。

最简单的方法就是像往常一样将“已禁用”功能编入您的应用。但是在某处存储标志,比如说一个名为“contentHasBeenPurchased”的标志。你可以在任何地方存储此标志;在一个plist中,在NSUserDefaults中,但这些是不安全的方式来存储你的国旗,因为越狱应用程序可以轻松访问你的应用程序的沙箱。这些方法对于非越狱用户来说是安全的,大多数情况下......有一些软件可以让你访问iOS文件系统并从那里编辑plist。所以是的,将这个特定的标志存储在plist或NSUserDefaults当然不是一个好主意。

因此,您将这个标志“contentHasBeenPurchased”存储在iOS钥匙串中,因为它是加密的。如果你不知道如何使用iOS钥匙串,学习起来有点复杂,但它肯定会在不久的将来得到回报。在钥匙串中拥有标志后,只需检查其值是真还是假来启用购买的内容即可。当用户购买应用程序时,只需将该标志设置为true,即可开始使用。

+0

@ Sergio:但我很困惑,如果用户购买完整版本的应用程序,然后用户关闭应用程序。我如何知道它的购买或不?基本上,我正在瞄准非消耗品。 – Devang 2011-05-16 05:44:30

+0

那么,如果你不愿意做任何国旗检查,那么你永远不会真正知道用户是否购买了应用程序。因此,您需要做的一切就是在用户购买应用程序后更改标志,并在下次应用程序再次打开时进行检查。希望我正确回答你的新问题。 – 2011-05-16 06:02:28

+0

@Sergio:好主意!以及你如何给iOS keychain选项。它是否也同样起作用(设置标志并检查它)?如果你能分享的话,还有任何好的链接。 – Devang 2011-05-16 06:09:46