2013-01-05 33 views
3

我創建了使用應用內購買的應用程序,一切正常。現在假設設備已越獄並且無法訪問互聯網(所以我無法驗證商店收據),並且用戶找到了我保存購買信息並對其進行處理的文件。iOS保存應用內購買數據並處理越獄

我該如何處理這種情況?有沒有一種蘋果定義的方式?還是應該使用加密(以及獲取ERN的過程)?

回答

4

在大多數情況下,可以忽略越獄設備。如果某人確實想要在越獄設備上盜取您的應用程序內購買,他/她將能夠。

是的,你可以讓它更難,但這是值得的努力?難道你不會因爲增加一些功能而獲得更多利潤(通過獲得更多銷售額),並讓您的應用更具吸引力?

另外,蘋果公司正在努力讓iPhone手機難以越獄,而現在看來,他們看起來會相當成功。

不,根據我所知,沒有Apple定義的方式。是的,您可以使用設備ID作爲密鑰的加密(或沿着這些線路)。您也可以使用iOS鑰匙串代替文件來存儲您的購買信息。

0

我使用的是我自己的「訣竅」來處理這個問題。

首先,我選擇兩個不同的大素數(5-6位數字應該這樣做)並將它們相乘並加1. 其中之一是「主素數」,另一個取決於在商店中購買的物品。

(master_prime * prime)+1;

結果編號是9〜15位數字。

我保存在我的應用程序的2個不同的地方(如NSKeyedArchiver到文件和NSUserDefaults)。

這是用戶從商店購買商品時發生的情況。

當我啓動應用程序我做幾個檢查:

  • 如果2個文件具有相同的編號,如果素=結果
  • (9位數字/ master_prime - 1)是素數
  • 如果原具有一定的屬性(通常的數字之和等於一定數目)

如果任何這些都不是真的話,我嘗試連接到互聯網,以恢復購買。如果我不能...再見再見購買(直到我可以再次連接到互聯網... ofc)。

要優化這個...你可以檢查第一個條件......如果不是真的,不需要檢查其他條件。

我給了一個這樣的號碼給我的一個朋友來破解它......並且花費了他〜5個小時才能做到這一點,它用17位數字作爲主素數和5位數字作爲商店變量素數。這是因爲他知道自己在做什麼......如果你不知道如何拿出這些數字,那需要幾天甚至幾個月的時間。

你可以用3個素數來代替2..或更大的數字......或者每個素數都有不同的屬性。