10

変更されないiPhone / iPadデバイス用のUDIDを作成したいので、誰かアイデアがあれば教えてください。

Google とスタック オーバーフローを検索しましたが、解決策がありません。

また、OpenUDID と CFUUID を使用することを提案する人もいましたが、ユーザーがアプリを削除して再インストールすると、CFUUID は異なります。しかし、最初に生成されるアプリケーションごとに同じ UDID を使用したいのですが、各アプリケーションのデバイスごとに生涯変更されないはずです。

4

3 に答える 3

2

UDID と UUID の違いに注意することが重要です。

UDID「一意のデバイス ID」はハードウェア固有です。特定のデバイスで変更されることはありません。このため、これはプライバシー上の懸念となり、Apple はこれを使用しようとするアプリをブロックしています。その結果、Apple は、特に広告の使用のために、オプトアウト可能な「デバイス ID」ハッシュを生成しました。この新しい ID ハッシュは IFA と呼ばれ、iOS 6.0 以降で使用できます。

UUID「普遍的に一意の ID」はハードウェア固有ではありません。これは、デバイスを識別するために使用されるハッシュです。特に絶対値ではありません。たとえば、PhoneGap はデバイスのプロパティに基づいて UUID を生成します。これは、device.uuid を実行したときに得られるものです。アプリを削除して再インストールすると、新しい ID ハッシュが取得されます。UUID は Apple によってブロックされていません。

最善の解決策は、OpenUDID を iOS < 6.0 のバックアップとして IFA を使用することだと思います。

使用するコードは次のとおりです。IFA が利用できない場合は、OpenUDID を取得します。[[OpenUDID をインストールする必要があります。詳細については、https://github.com/ylechelle/OpenUDID をご覧ください。]]

NSString* uuid = nil;
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
    // IOS 6 new Unique Identifier implementation, IFA
    uuid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
} else {
    // Before iOS6 (or if IFA disabled) you shoud use a custom implementation for uuid
    // Here I use OpenUDID (you have to import it into your project)
    // https://github.com/ylechelle/OpenUDID
    NSString* openUDID = [OpenUDID value];
    uuid = [OpenUDID value];
}
于 2013-04-30T17:38:20.057 に答える
0

初めてUUID を (CFUUIDRefおそらく API を使用して) 生成し、キーチェーンに保存します。

于 2013-04-13T06:04:47.363 に答える