我有一个应用程序,我希望用户能够支付少量费用来删除广告。我认为最好的方法(应用程序需要保持免费)是通过应用程序内购买。然而,我想知道删除广告的最佳方法以及用户购买升级后如何操作。任何帮助或建议都会非常感谢。
答案 0 :(得分:13)
NSUserDefaults中的布尔值似乎是正确的选择。您可以在启动时查看广告,查看是否应展示广告,让应用隐藏或相应地展示广告,并在用户付费以禁用广告时将其设置为适当的值。
编辑添加:
刚看到this on the dev forums。如果您特别担心越狱设备上的用户摆弄您的NSUserDefaults布尔值,您可以使用钥匙串存储数据。钥匙串不能以与NSUserDefaults相同的方式进行干预。该链接的更多细节。
我一般不相信在反盗版方面付出太多努力,但这是一种轻松的方式来掩盖自己,并不比使用NSUserDefaults花费更多。
答案 1 :(得分:0)
另一种方法是记录购买或恢复时收到的SKPaymentTransaction的收据。在随后的发布中,您可以在后台验证应用商店的收据,如有必要,重新启用广告以供下次启动。
Verifying Store Receipts documentation
虽然我不认为这可以保护您不会粘贴来自其他地方的有效用户收据,但是比在NSUserDefaults中切换布尔值更难以规避。无论如何,任何人都不太可能为你的应用付费。
答案 2 :(得分:-2)
嗯,这个问题不是iphone限制的。您应该应用众多安全算法之一。 (我不知道如何完成购买,但我会提出建议) 例如,您可以在购买后使应用程序将IMEI发送到购买服务器,该服务器将生成应用程序将保存的代码。然后,所有应用都会检查它是否启用/停用广告。 (尝试使用一些哈希算法等来制作代码)
请记住,所有系统都可能被破解,所以不要尝试太复杂的东西,以免给真正的用户带来麻烦。