19

将来のAppleの制限によって制限されない、iOSデバイスを一意に登録する最良の方法は何ですか?

iOS デバイスを登録する (基本的にデバイスを一意に識別する) ための現在のアプローチは、iOS デバイスの UDID を使用してそれを識別して登録し、それを認識した後に必要なアクションを実行するというものです。

問題は、UIDevice の uniqueIdentifier プロパティが廃止されたことです。私が知っている特定の回避策があります(この質問で説明されているように)。

1 つの可能性は、iOS デバイスの MAC アドレスを使用することです。ただし、将来的には、Apple がこの情報へのアクセスを制限する可能性もあると思います。

将来的に信頼できる iOS デバイスを識別する他の方法 (MAC アドレスにアクセスする以外に) はありますか?

4

5 に答える 5

7

Apple が推奨する CFUUIDRef の生成方法を使用するのがおそらくより良い解決策です。MAC アドレスも将来削除される可能性があるからです。これを使用して NSUserdefaults に保存すると、ユーザーがアプリを削除しない限り保持されます。アプリ間で共有したり、インストール間で保持したりできる生成された一意の ID が必要な場合は、UIPasteboard を使用して、アプリ間で共有するキーを使用して生成された UID を保存することを検討する必要があります。

//Create a unique id as a string
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);

//create a new pasteboard with a unique identifier
UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"youruniquestring" create:YES];

[pasteboard setPersistent:YES];

//save the unique identifier string that we created earlier
[pasteboard setString:((__bridge NSString*)string)];


 //accessing it
UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"youruniquestring" create:NO];
NSLog([pasteboard string]);

ここに簡単なチュートリアルを書きましたが、基本的には上記の行です。 ios デバイス/

于 2012-05-08T03:39:09.940 に答える
4

アプリケーションが私の Apple デバイスを管理するためのものでない限り、それは間違ったアプローチです。ユーザーとして、私が使用しているデバイスを知られたくありません。私が使用するデバイスが何であれ、あなたに私を認識してもらいたいのです。故障したデバイスを交換できるようにしたい。Apple、この情報へのアクセスをますます制限します。

[編集] MAC アドレスがどのように機能するのかわかりません。私の iOS デバイスは複数持つことができます。

于 2012-05-11T07:17:47.753 に答える
2

もう 1 つのオプションは、独自の UUID を動的に生成することです。

CFUUIDRef uuid = CFUUIDCreate(NULL); 
CFStringRef generatedUuidStr = CFUUIDCreateString(NULL, uuid);
CFRelease(uuid);
NSString* uuidStr = [(NSString*)generatedUuidStr autorelease];

インストールベースの一意性のために、この UUID を NSUserDefaults に保持できます。デバイス ベースの一意性が本当に最も重要なことである場合 (アンインストールして再インストールした後も ID が保持されるようにするため)、デバイス上で ID を保持するメカニズムが必要になります。アプリのアンインストール後も保持される ID を保持するために、キーチェーンの使用を検討できると思います。UUID をキーチェーンに追加するときにアクセス グループを使用して、同じ UUID を使用する一連のアプリを作成することもできます。

キーチェーン アイテムの保存と取得の詳細については、Apple のセキュリティ フレームワーク リファレンスを参照してください。

http://developer.apple.com/library/ios/#DOCUMENTATION/Security/Reference/SecurityFrameworkReference/_index.html

于 2012-05-04T18:39:17.613 に答える
1

私が見た最良のアプローチは、キーチェーンを使用することです。CFUUIDCreateString関数でUUID を生成し、キーチェーンに保存できます。このデータは、インストールとバックアップからの復元の間、デバイスに残ります。

于 2012-05-10T16:10:22.713 に答える
-2

デバイスの Mac アドレスを使用します。それはあなたが必要とするほどユニークだと思います。

プログラムでiPhoneのMACアドレスを取得するにはどうすればよいですか

于 2012-04-25T16:16:45.697 に答える