重複の可能性:
iOS 固有のユーザー識別子
私のアプリケーションでは、電話の uuid が必要です。私はそれを得ることができることを知っています
NSUUID *uuid = [NSUUID UUID];
しかし、アプリを再起動するたびに、異なる値を受け取ります。そのため、古い uuid (常に同じ) のように使用することはできません。
安定した一意の識別子を受け取るにはどうすればよいですか?
重複の可能性:
iOS 固有のユーザー識別子
私のアプリケーションでは、電話の uuid が必要です。私はそれを得ることができることを知っています
NSUUID *uuid = [NSUUID UUID];
しかし、アプリを再起動するたびに、異なる値を受け取ります。そのため、古い uuid (常に同じ) のように使用することはできません。
安定した一意の識別子を受け取るにはどうすればよいですか?
UUID は 128 ビット値です。UUID は、それが生成されたコンピューターに固有の値と、1582 年 10 月 15 日 00:00 以降の 100 ナノ秒間隔の数を表す値を組み合わせることによって、空間と時間の両方で固有になります。 00.
したがって、毎秒新しい UUID を取得します。
安定した一意の ID を受け取ることはできません。代わりに、受け取った ID をキーチェーンまたは plist に保存して使用できます。
あなたは UDID (UUID ではない) を考えています。これは廃止され、App Store では許可されなくなりました。
これをシミュレートする手法は次のとおりです。https://stackoverflow.com/a/8677177/832111
OpenUDIDライブラリを使用して、デバイスごとに一意のUDIDを生成できます。こちらから入手できます。基本的にはPasteboardを使用します。以下の例
//First app, install->run->close->delete
UIPasteboard* board = [UIPasteboard pasteboardWithName:@"com.company.wtv" create:YES];
board.persistent=YES;// persistent to make what you write persist after your app closes, or gets deleted.
[board setValue:@"hello" forPasteboardType:@"com.company.wtv.sharedValue"];
//Second app, installed after first one is deleted and ran this one... While bundle identifier and bundle seed different (i tried it on adhoc, not really releasing the app, but i htink the same)
NSData* result=nil;
NSString*resultStr=nil;
result =[board valueForPasteboardType:@"com.company.wtv.sharedValue"];
resultStr=[[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding];// I got resultStr containing hello