したがって、Apple は UDID を使用するアプリを拒否しています。これについてはたくさんの投稿がありますが、OpenUDID を使用するのが良いと書かれている場所が見つかりません。
それで、アップルがこれを承認するかどうか誰かが知っているでしょうか?OpenUDID が UDID としてすべての機能を備えている場合は?
多分誰かがこのアプローチを使用していて、もっと説明できますか?
したがって、Apple は UDID を使用するアプリを拒否しています。これについてはたくさんの投稿がありますが、OpenUDID を使用するのが良いと書かれている場所が見つかりません。
それで、アップルがこれを承認するかどうか誰かが知っているでしょうか?OpenUDID が UDID としてすべての機能を備えている場合は?
多分誰かがこのアプローチを使用していて、もっと説明できますか?
最も簡単な解決策は、独自の UUID を生成することです。
NSString *UUID() {
CFUUIDRef cfuuid = CFUUIDCreate(NULL);
NSString *uuid = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, cfuuid);
CFRelease(cfuuid);
return uuid;
}
これをアンインストール/インストールサイクル全体で保持する必要がある場合は、https ://stackoverflow.com/a/11597291/382374 で説明されているようにキーチェーンに入れます。
最良の方法は、これがAppleが推奨する方法です。
幸運を!
デバイスの MAC アドレスとバンドル ID のハッシュに基づいて、独自の UDID を作成します。これにより、特定のデバイスでアプリを一意に識別できるようになります。
複数のアプリで一意の ID が必要な場合は、MAC アドレスのみに基づいてハッシュを作成することもできます。
私は実際にこれを行う方法についてブログ投稿を書き、ここにいくつかのサンプルコードを提供しました:
https://radeeccles.com/blog/create-your-own-unique-device-identifier-udid
私の知る限り、それは良い方法です。同様に、SecureUDID も同じことを行うものです。OpenUDID を使用すると、アプリを再起動したり、アプリケーションを再インストールしたりしても、UDID は変更されません。しかし、kOpenUDIDDomain や kOpenUDIDSlotPBPrefix などの入力値を変更すると、新しい UDID が生成されます。生成して PasteBoard に格納します。デバイスをリセットしても同じです。私は個人的にこれに投票します。