【发布时间】:2011-06-26 02:49:13
【问题描述】:
我以前从未实现过 In App Purchase,所以我使用了 MKStoreKit 包装器并有一个有效的实现。 MKStoreKit 将 UserDefaults .plist 中的所有收据保存为 BOOL,因此盗版者可以非常简单地以“破解”状态分发应用内购买。首次购买后,即可分发捆绑包并重新创建 .plist 以启用 IAP 解锁。
我想扩展 MKStoreKit 以在 iOS 钥匙串中创建 In App Purchase 验证数据。是否有任何缺点或可能的原因导致付费用户失败、不可靠或任何其他原因导致这样做总体上是个坏主意?我知道盗版是不可避免的,我绝对不想疏远付费用户,但我觉得 UserDefaults .plist 太容易绕过了。
在我的场景中,购买时会在钥匙串中放入一个简单的字符串。这样,如果二进制文件被分发,则尚未启用可解锁项。当然,有可能想出一个解决方法,但需要更多的努力并知道如何找到 TRUE/FALSE 标志并使其始终返回正确的值。通过混淆,我什至可以稍微提高追踪它的难度。
感谢您的所有见解,我感谢您避免强制性不可避免的盗版,处理它的答复。我对这个解决方案的技术可行性更感兴趣。
【问题讨论】:
-
+1 这与我的兴趣相关。目前,我将一些字符串(作为盐)添加到设备标识符和 md5 中,并将其存储在 userdefaults 中。
-
非常酷。这样它就不会在没有 iTunes 凭据的情况下在另一台设备上进行身份验证。
-
作为记录,我不确定您是否参与其中,但 MKStoreKit 现在会在 iOS 钥匙串中创建验证数据。
-
是的,这篇文章是在那之前发布的
-
为了记录,@MatthiasBauch 的方法可能是个坏主意——如果用户升级到新设备并从备份中恢复,则设备 ID(或任何 UUID 替换做同样的事情是称为)将不匹配!它看起来像盗版,因此用户至少必须恢复购买 - 或者,如果您在认为它是盗版时做的更公开,那么在这种情况下可能会适得其反。跨度>
标签: iphone ios keychain piracy-prevention anti-piracy