雖然我的應用程序不是遊戲,但基於投幣的遊戲可以作爲一個很好的比喻。保存用戶的硬幣計數
在這樣的遊戲中,用戶可以通過遊戲或購買IAP獲得一定數量的硬幣。主要問題是安全地存儲用戶在當地有多少硬幣。
我知道還有其他類似的問題,比如this。這個答案基本上說,在試圖安全地保存數據方面沒有用處;只是處理用戶可以編輯數據的事實。
我寧願不只是將數據留在公開中供用戶更改(如果他們可以編輯數據,爲什麼他們會購買IAP?)。我研究了Keychain,它具有查看和編輯數據的公共接口,以及NSUserDefaults,它保存到可以輕鬆更改的Plist中。
對我有沒有更好的選擇,或者我應該甚至不嘗試(如上面的答案)?
編輯:該應用程序實際上是一個開發人員工具,具有有限數量的標記。由於用戶都具有技術技能,他們中的大多數(我都假設)有足夠的知識來查找和更改Plist文件或Keychain數據。
擴展您正在使用的威脅模型可能會有幫助。用戶繞過這種控制的動機如何,如果他們這樣做會真正花費什麼,這種利用有多容易傳播給其他用戶?你真的需要警惕這種貨幣的多少方面? (您可以通過編輯可用數量的硬幣來避免您的控制,或者通過阻止應用程序減少該數字,或者完全跳過對這些硬幣的檢查,或者在花費一枚硬幣後恢復到較舊的狀態......) – Jonah
@Jonah該應用程序是iOS開發人員的翻譯人員(讓開發人員可以輕鬆翻譯Localizable.strings文件)。對於翻譯的每個字符都是從用戶中扣除的令牌。用戶有激勵來填充他們的令牌,以便他們可以繼續翻譯更多的字符。如果他們可以編輯Plist,他們可以簡單地手動添加更多,而不是通過IAP。 – erdekhayser