web-dev-qa-db-ja.com

UDIDとUUIDの違い

[〜#〜] udid [〜#〜](Unique Device IDentifier)と言う人もいます[〜#〜] uuid [〜#〜](Universally Unique IDentifier)。それらは同じですか?それらの違いは何ですか?

35
user960567

ID(Universally Unique IDentifier)アプリごとです。デバイス上のアプリを識別します。ユーザーがアプリを完全に削除しない限り、この識別子はアプリの起動間で保持され、少なくともデバイス上の特定のアプリを使用して同じユーザーを識別できます。残念ながら、ユーザーがアプリを完全に削除してから再インストールすると、IDが変更されます。

DID(Unique Device Identifier) iOSデバイスを一意に識別する40個の16進文字のシーケンス。この値は、iTunesから取得するか、UIDevice -uniqueIdentifierを使用して検索できます。 MACアドレスなどのハードウェアの詳細から派生。

78
Rugmangathan

AppleはiOS5のUDID(Unique Device IDentifier)へのアクセスを削除し始めているようです。いずれにしても、識別の目的でできる最善の方法は、UUID(Universally Unique IDentifier)を使用することです。これはアプリごとでなければなりません。つまり、これ以上デバイスを識別する方法はありませんが、デバイス上のアプリを識別することができます。ユーザーがアプリを完全に削除しない限り、この識別子はアプリの起動間で保持され、少なくともデバイス上の特定のアプリを使用して同じユーザーを識別できます。残念ながら、ユーザーがアプリを完全に削除してから再インストールすると、IDが変更されますが、これは誰でもできることです。

5
morroko

これを実行する方が良い- http://nshipster.com/uuid-udid-unique-identifier/

[〜#〜] uuid [〜#〜](Universally Unique Identifier):定義された空間と時間にわたる一意性を保証できる128ビットのシーケンス RFC 4122 によって。

[〜#〜] udid [〜#〜](一意のデバイス識別子):iOSデバイスを一意に識別する40個の16進文字のシーケンス(デバイスの必要に応じて、社会保障番号)。この値は、iTunesから取得するか、UIDevice -uniqueIdentifierを使用して検索できます。 MACアドレスなどのハードウェアの詳細から派生。

5
user3182143

IOS 5以降、AppleはUIDevice uniqueIdentifierを非推奨にしました。つまり、各iOSデバイスの一意のIDを取得する従来の方法は現在動作しません。つまり[[UIDevice currentDevice] uniqueIdentifier]はiOS 5以降では失敗します。

UUIDの代替として、デバイスの一意のIDを作成するためにAppleのCFUUIDクラスを使用できます。しかし、このinbuildクラスはランダムに作成することに注意する必要がありますNSUserDefaultsを使用して保存するのではなく、キーチェーンを使用するのが最善の方法です。

そのため、ここでは、デバイスの一意のキーとして使用するための最良の使用方法を説明します。

- (NSString *)createNewUUID {

    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [(NSString *)string autorelease];
}

UDID:

http://whatsmyudid.com/

enter image description here

3
codercat

ITunesに適用されるUDID(Unique Device Identifier)は、Apple開発証明書。iOS5SDKの次のコードで取得できます。

[UIDevice currentDevice] uniqueIdentifier];

定義は次のとおりです。

@property(nonatomic,readonly,retain) NSString    *uniqueIdentifier  __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_NA,__MAC_NA,__IPHONE_2_0,__IPHONE_5_0);  // a string unique to each device based on various hardware info.

UUIDは、Universally Unique Identifierであり、ソフトウェア構築で使用される識別子標準であり、分散コンピューティング環境(DCE)の一部としてOpen Software Foundation(OSF)によって標準化されています( wiki )。

次のコードでUUIDを取得できます。

-(NSString*) uuid {  
    CFUUIDRef puuid = CFUUIDCreate( nil );  
    CFStringRef uuidString = CFUUIDCreateString( nil, puuid );  
    NSString * result = (NSString *)CFStringCreateCopy( NULL, uuidString);  
    CFRelease(puuid);  
    CFRelease(uuidString);  
    return [result autorelease];  
}

ただし、iOS7デバイスでは、上記のメソッドは異なるデバイスに対して同じ値を返します。

link で一意の識別子を取得する多くの方法があります

1
simalone