【问题标题】:iPhone : In-App purchase queryiPhone : 应用内购买查询
【发布时间】:2011-05-16 05:32:39
【问题描述】:

我想在我的应用中添加应用内购买功能。

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

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

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

我该怎么做?

有没有例子或好的链接?

【问题讨论】:

    标签: iphone objective-c cocoa-touch ios4 in-app-purchase


    【解决方案1】:

    有很多方法可以实现:

    • 在成功购买应用后使用您自己的服务器并交付内容。
    • 使用 iOS 钥匙串存储一些标志。

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

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

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

    【讨论】:

    • @Sergio:但我很困惑,一旦用户购买了完整版的应用程序然后用户关闭了应用程序。我怎么知道它是否购买了?基本上,我的目标是非消耗品。
    • 好吧,如果您不愿意进行任何标志检查,那么您将永远不会真正知道用户是否购买了该应用程序。因此,您需要做的就是在用户购买应用程序后更改一个标志,并在下次应用程序再次打开时检查它。希望我能正确回答您的新问题。
    • @Sergio:好主意!以及您提供的 iOS 钥匙串选项怎么样。它是否也可以类似地工作(设置标志并检查它)?如果您可以分享任何好的链接。
    • 实际上,我的想法涉及使用 iOS 钥匙串 ;) 大声笑。您必须将您的标志以真值或假值存储在那里。 iOS 钥匙串将允许您以加密方式存储您的标志,以便用户无法篡改它。这是 iOS 钥匙串的一个很好的教程:useyourloaf.com/blog/2010/3/29/…。所以基本上,您需要做的就是在钥匙串本身中制作您的标志,在您进行一些检查时检索它,并在用户购买应用程序时更改它的值。
    • @Sergio:我已经阅读了这些信息,但我仍然不知道 iOS 钥匙串如何存储我的标志??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多