com.something.plist
ジェイルブレイクせずに簡単に編集できます。無料のツール* を使用すると、デバイスを参照したり、これらのファイルを編集および保存したりできます。アプリ内購入を次のように保存する場合:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"com.example.pack1"];
[[NSUserDefaults standardUserDefaults] synchronize];
次に、これが plist に書き込まれます。
<key>com.example.pack1</key>
<true/>
パッケージに pack1、pack2 などの名前を付け、誰かが plist を編集 (最初のキーをコピー/貼り付け) した場合、ロックされた機能を簡単に使用できます。
メソッドの実装がそれほど難しくないのは、次のように保存することです。
[[NSUserDefaults standardUserDefaults] setValue:[self sha1ValueForKey:@"com.example.pack1"]
forKey:@"com.example.pack1"];
[[NSUserDefaults standardUserDefaults] synchronize];
どこ-sha1ValueForKey:
ですか
-(NSString *)sha1ValueForKey:(NSString *)key {
return [self sha1:[NSString stringWithFormat:@"<SALT>%@", key]];
}
何かに変えなければなりません<SALT>
。
ここで見つけることができ-sha1:
ます: http://www.makebetterthings.com/iphone/how-to-get-md5-and-sha1-in-objective-c-ios-sdk/
この後、キーがハッシュ値と一致するかどうかを確認できます。
誰かがあなたの plist をハックしたい場合、彼/彼女はあなたのハッシュメカニズムとソルトを知らなければなりません。これはアプリケーションを保護する最も安全な方法ではありませんが、実装は簡単です。
*iExplorer
編集:
提案された方法は、ユーザーがハッシュ値にアクセスできない場合にのみ、IAP を保護します。誰かがどこかから取得した場合、そのデータを plist にコピーするのは簡単です。SALT がデバイスに依存する場合、コピーは役に立ちません。