iOS保存应用内购买数据并处理越狱

时间:2013-01-05 10:00:49

标签: ios in-app-purchase

我创建了使用应用内购买的应用,一切都还可以。现在假设设备已越狱并且无法访问互联网(因此我无法验证商店收据),并且用户找到了我已保存购买信息并对其进行操作的文件。

我该如何处理这种情况?是否有苹果定义的方式?或者我应该使用加密(以及获取ERN的过程)?

2 个答案:

答案 0 :(得分:4)

在大多数情况下,可以忽略越狱设备。如果有人真的想要在越狱设备上盗用您的应用内购买,他/她将能够。

是的,你可以让它变得更难,但值得努力吗?您是否会通过添加一些功能并使您的应用更具吸引力而获得更多(通过获得更多销售额)获利?

此外,Apple正在努力使iPhone难以越狱,而现在看来,它们看起来相当成功。

不,据我所知,没有Apple定义的方式。是的,您可以使用设备ID作为密钥的加密(或沿着这些行的东西)。您也可以使用iOS钥匙串代替文件来存储购买信息。

答案 1 :(得分:0)

我使用的是我自己的“技巧”来处理这个问题。

首先,我选择2个不同的大素数(5-6位应该做)并将它们相乘并加1。 其中一个是“主要素材”,另一个是商店里购买的商品。

(master_prime * prime)+1;

结果数字为9~15位数字。

我将其保存在我的应用中的两个不同位置(例如NSKeyedArchiver到文件和NSUserDefaults中)。

当用户从商店购买东西时会发生这种情况。

当我启动应用程序时,我会做一些检查:

  • 如果2个文件具有相同的数字
  • 如果prime =(9位数/ master_prime - 1)的结果是素数
  • 如果素数具有某个属性(通常是数字的总和等于某个数字)

如果其中任何一个不正确,那么我尝试连接到互联网以恢复购买。如果我不能...再见购买(直到我再次连接到互联网... ofc)。

为了优化这一点......你可以检查第一个条件......如果不是这样,则无需检查其他条件。

我把这样的号码给了我的一个朋友来破解它......他花了大约5个小时用1 7位数字作为主要素数和5位数作为存储变量素数。这是因为他知道自己在做什么......如果你不知道如何提出这些数字,那就需要几天甚至几个月。

你可以用3个素数来改进,而不是2个或更大的数字......或者每个素数都有不同的属性。

相关问题