ほむほむ。

NoliliLog

今日リリースされたiOS 6, マップやPassbookが目立った新機能だが、UDID/UUID周りについても重要な変更が行われている。
これらについてまとめておく。

UDIDへのアクセスは基本的にNG.
UDIDへのアクセスはiOS 5から非推奨とされている。
公式リファレンスでは、CFUUIDRefを生成し、アプリ内で保存するなどの方法をこれまでには紹介されていたが、iOS 6ではフレームワーク側でUDIDにかわるID(どれもUUID)を用意している。

+ [NSUUID UUID]
従来のCFUUIDRefのObjective-C版と考えていいだろう。クラス・メソッドの+UUID を呼び出せば、UUIDが新規に生成される。
NSString、バイト列に変換するインスタンス・メソッドも用意されている。
ただし、CFUUIDRefとToll-Free bridgeではない。

UIDevice.identifierForVendor
デバイス固有であるが、ベンダごと(Team IDごと)で異なるUUIDを返す。

ASIdentifierManager.advertisingIdentifier
デバイス固有で、すべてのアプリで共通のUUIDを返す。強力なスーパー・クッキーとして機能する。
広告ネットワークのSDKを開発することを想定されている。
advertisingIdentifierを広告目的で利用する場合、ASIdentifierManager.advertisingTrackingEnabledを参照し、ユーザがトラッキングを許可しているか、確認する必要が有る。ユーザが許可していない場合、このUUIDをトラッキング用途で利用してはならない。
この機能はUIKitには含まれず、利用するにはAdSupport.Frameworksをリンクしなければならない。
なお、advertisingIdentifierをトラッキング目的で提供することは、標準では許可されている。提供を拒否したい場合は、iOSの設定アプリから情報>アドバタイズ>Ad Trackingを制限 でオプト・アウトする必要が有る。

追記

iOS Developer Centerのソースは以下の通り

NSUUID Class Reference

UIDevice Class Reference

Ad Support Framework Reference

追記その2

UIDevice.identifierForVendorとASIdentifierManager.advertisingIdentifierはデバイスの初期化等で再生成され、値が変化する可能性がある。値が変化するタイミングについては、現在調査を進めている。

元の投稿を表示

広告
  1. トラックバックはまだありません。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。