一部のデータを plist ファイルに保存しています..共有できることに気付きました。.plist ファイルをデバイス固有にする方法はありますか? 多分UDIDか何か?どんなアイデアでも大歓迎です..
2 に答える
UDID は 2013 年 5 月 1 日から禁止されています。
iOS 6 以降では、 と呼ばれる追加のメソッドが 1 つありidentifierForVendor
ます。この方法を使用して、各 iOS デバイスでアプリの一意の識別子を作成できます。
次のように取得できます。
NSString *idForApp = [[UIDevice currentDevice] identifierForVendor];
plist
を使用して保存しますidForApp
。ユニークでしょう。
identifierForVendor
アプリのベンダーに対してデバイスを一意に識別する英数字の文字列。(読み取り専用)
@property(nonatomic, readonly, retain) NSUUID *identifierForVendor;
討論
このプロパティの値は、同じデバイスで実行されている同じベンダーのアプリでも同じです。異なるベンダーから提供された同じデバイス上のアプリと、ベンダーに関係なく異なるデバイス上のアプリでは、異なる値が返されます。
アプリがバックグラウンドで実行されている場合、デバイスの再起動後にユーザーが初めてデバイスのロックを解除する前に、このプロパティの値が nil になることがあります。値が nil の場合は、しばらく待ってから再度値を取得してください。
アプリ (または同じベンダーの別のアプリ) が iOS デバイスにインストールされている間、このプロパティの値は変わりません。ユーザーがデバイスからそのベンダーのアプリをすべて削除し、その後それらの 1 つ以上を再インストールすると、値が変わります。したがって、アプリがこのプロパティの値をどこかに保存する場合は、識別子が変更された状況を適切に処理する必要があります。
可用性
Available in iOS 6.0 and later.
UIDevice.h で宣言
参照 :
また、クラスのUUID
クラス メソッドを使用しNSUUID
て一意の ID を作成することもできます。
.plist ファイルの内容を他人に見られたくない場合は、iOS が提供する暗号化アルゴリズムを使用してファイルを暗号化できます。他の簡単な方法は、機密データをキーチェーンに保存するか、NSUserDefaults
ファイルに書き込まずに保存することです。これは非常にデバイス固有です。幸運を!