0

重複の可能性:
iOS 固有のユーザー識別子

私のアプリケーションでは、電話の uuid が必要です。私はそれを得ることができることを知っています

NSUUID  *uuid = [NSUUID UUID];

しかし、アプリを再起動するたびに、異なる値を受け取ります。そのため、古い uuid (常に同じ) のように使用することはできません。

安定した一意の識別子を受け取るにはどうすればよいですか?

4

3 に答える 3

3

UUID は 128 ビット値です。UUID は、それが生成されたコンピューターに固有の値と、1582 年 10 月 15 日 00:00 以降の 100 ナノ秒間隔の数を表す値を組み合わせることによって、空間と時間の両方で固有になります。 00.

したがって、毎秒新しい UUID を取得します。

安定した一意の ID を受け取ることはできません。代わりに、受け取った ID をキーチェーンまたは plist に保存して使用できます。

于 2012-12-22T15:07:33.290 に答える
2

あなたは UDID (UUID ではない) を考えています。これは廃止され、App Store では許可されなくなりました。

これをシミュレートする手法は次のとおりです。https://stackoverflow.com/a/8677177/832111

于 2012-12-22T15:07:59.577 に答える
1

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
于 2012-12-22T15:33:47.580 に答える