判っていた事ではありますが、ついにappleがUDIDを使用しているDeveloperの排除に乗り出しましたね。

Apple reportedly rejecting apps that access UDIDs
ご注意! プライバシーへの懸念の高まりを受けてAppleはデバイスIDにアクセスするアプリを拒絶し始めた



UDIDの代替としてどんなものが議論されているのかなと思い検索したところ、OpenUDIDというものが
話題になっているので調べてみました。

語感からOpenIDのUDID版の様なものを想像していたのですが「OpenSource」なUDIDを
提供する意図で作られていたみたいで、アプリ間でユニークなキーを共有し合えるものでは無い様です。

あと完成度も2012年3月26日現在ではそれほど高くない・・・

The agenda was as follows:
- Provide a reliable proxy and replacement for a universal unique device identifier. That is, persistent and sufficiently unique, on a per device basis.
- NOT use an obvious other sensitive unique identifier (like the MAC address) to avoid further deprecation and to protect device-level privacy concerns
- Enable OpenUDID to be accessed by any app
- Supply open-source code to generate and access the OpenUDID, for iOS and Android
- Incorporate, from the beginning, a system that will enable user opt-out to match Apple’s initial intent

ガンバレ^^

あとソース中に面白いコメントが

NSString* _openUDID = nil;
// 2011: One day, this may no longer be allowed in iOS. When that is, just comment this line out.
// March 25th 2012: this day has come, let's remove this "outlawed" call...
#if TARGET_OS_IPHONE
// if([UIDevice instancesRespondToSelector:@selector(uniqueIdentifier)]){
// _openUDID = [[UIDevice currentDevice] uniqueIdentifier];
// }
#endif
// Take this opportunity to give the simulator a proper UDID (i.e. nullify UDID and create an OpenUDID)
//
#if TARGET_IPHONE_SIMULATOR
_openUDID = nil;
#endif

githubのログを見ると、昨日急いでUDID取得するのを止めた様ですね。

ガンバレ^^

という事で、OpenUDIDはUDIDの代替にはならない、かつまだまだ開発中のプロジェクトの様なので
ユニークキーを生成する際にも使用は控えた方がいいです。

アプリ毎のユニークキーが必要な場合
UUID
を使うのがスタンダードだと思うのでOpenUDIDよりはこちらをお勧めします。


objective-Cで実装する場合
CFUUIDCreate
でぐぐれば実装方法は判るかと思います。