2017-12-02 13 views
1

私のゲームのいくつかの文字列(スコア、lastPlayedLevelなど)をキーチェーンに保存しようとしています。それは最も安全な方法であると言われているからです。 私はKeychainのコンセプトに慣れていないので、おそらく「非常にシンプルな」ものを理解する上で問題があります。キーチェーンにゲームの状態とスコアを保存する

私はSAMKeychainラッパーを使用して、私は

[SAMKeychain setPassword:@"25" forService:[[NSBundle mainBundle] bundleIdentifier] account:@"lastPlayedLevel"]; 

以下のようにlastPlayedLevel文字列を設定したいが、それは正しいアプローチですか?私は "アカウント"の部分についてはわかりません。私は、 "lastPlayedLevel"をユーザーのすべてのデバイスに渡って同期させたいと思います。代わりにユーザー固有の文字列を書く必要がありますか?キーチェーンに得点し、ゲームの状態を置く

+2

*ゲームの得点と状態*は実際にキーチェーンに格納される資格はありません。 iOSはデフォルトでかなり安全です。そのような情報を 'UserDefaults'、カスタムプロパティリストファイルまたはコアデータに保存します。 – vadian

+0

なぜ彼らはキーチェーンの資格がないのですか? UserDefaultsは機密情報を置くのが安全ではないという多くの記事があります。たとえば、私のゲームでは「得点」はゲームのさまざまな側面を決定するので、誰もアクセスして変更しないようにします。カスタムplistファイルとコアデータについてはあまりよく分かりませんが、安全ですか?また、キーチェーンを使用すると、これらの情報を複数のプラットフォーム間で同期することができます。 – iloalo

答えて

1

やり過ぎ私見です。あなたがする必要があるのは、NSUserDefaultsにそれらを保存するだけですが、NSUserDefaultsファイルを開く誰もが直ちにそれを表示/編集できないように、データをバイナリにエンコードします。より秘密を望むならば、バイナリにエンコードする前にまず値をエンコードしてください(例えば、char xorやその他)。

関連する問題