我创建了使用应用内购买的应用,一切都还可以。现在假设设备已越狱并且无法访问互联网(因此我无法验证商店收据),并且用户找到了我已保存购买信息并对其进行操作的文件。
我该如何处理这种情况?是否有苹果定义的方式?或者我应该使用加密(以及获取ERN的过程)?
答案 0 :(得分:4)
在大多数情况下,可以忽略越狱设备。如果有人真的想要在越狱设备上盗用您的应用内购买,他/她将能够。
是的,你可以让它变得更难,但值得努力吗?您是否会通过添加一些功能并使您的应用更具吸引力而获得更多(通过获得更多销售额)获利?
此外,Apple正在努力使iPhone难以越狱,而现在看来,它们看起来相当成功。
不,据我所知,没有Apple定义的方式。是的,您可以使用设备ID作为密钥的加密(或沿着这些行的东西)。您也可以使用iOS钥匙串代替文件来存储购买信息。
答案 1 :(得分:0)
我使用的是我自己的“技巧”来处理这个问题。
首先,我选择2个不同的大素数(5-6位应该做)并将它们相乘并加1。 其中一个是“主要素材”,另一个是商店里购买的商品。
(master_prime * prime)+1;
结果数字为9~15位数字。
我将其保存在我的应用中的两个不同位置(例如NSKeyedArchiver到文件和NSUserDefaults中)。
当用户从商店购买东西时会发生这种情况。
当我启动应用程序时,我会做一些检查:
如果其中任何一个不正确,那么我尝试连接到互联网以恢复购买。如果我不能...再见购买(直到我再次连接到互联网... ofc)。
为了优化这一点......你可以检查第一个条件......如果不是这样,则无需检查其他条件。
我把这样的号码给了我的一个朋友来破解它......他花了大约5个小时用1 7位数字作为主要素数和5位数作为存储变量素数。这是因为他知道自己在做什么......如果你不知道如何提出这些数字,那就需要几天甚至几个月。
你可以用3个素数来改进,而不是2个或更大的数字......或者每个素数都有不同的属性。