個体識別番号iOS - cosmoway/sesame-ios GitHub Wiki
個体識別番号iOS
- UDID
- MACアドレス
- identifierForVendor(IDFV)
- AdvertisingIdentifier
- OpenUDID
- SecureUDID
- Cookie
- IMEI (International Mobile Equipment Identity)
- APNs
- UUID
1. UDID
- 取得非推奨
- iOS6からは利用するとリジェクト対象となり、iOS7からは返却される値がUDIDではなくなり、FFFFFFFFとidentifierForVendor(後述)によって連結される文字列に変更されました。
2. MACアドレス
- iOS6までは取得することができましたが、iOS7では固定値を返却するように修正されたため、現在では取得できません。
- やめた方がいい。
3. identifierForVendor(IDFV)
- UDIDに代わるIDとして、iOS6.0から使えるようになったIDです。 UDIDとは異なり、ベンダー(開発者)が異なるアプリでは、異なるIDが返されます。 同じベンダーのアプリでは同じIDが返されますが、端末から同じベンダーのアプリがすべてアンインストールされると、次回インストール時には異なるIDが返されるようになります。
- 廃止されたUDIDに替わる標準の端末識別子としてAppleが利用を推奨しているものです。
4. (ASID)AdvertisingIdentifier
- こちらもUDIDに代わるIDとして、iOS6.0から使えるようになったIDです。 UDIDと同様、すべてのベンダーのアプリで同じIDが返されますが、ユーザーがiOSの設定画面からAdvertisingIdentifierを取得できないように設定することができます。
- 広告以外で使用するとリジェクト
- Androidもあるっぽい
5. OpenUDID
- iOS端末のUDIDへのアクセスが禁止されたことによる代替案らしい。 性質はUDIDとほぼ同じで、オプトアウトできる(= 拒否権を行使できる、要は利用者都合で値を再生成できる)。 実装はiOS/Android/Windows Phoneがあるが、オプトアウトはiOS版のみ可能。
6. SecureUDID
- OpenUDIDがセキュアじゃない(特に複数ベンダー間で同一値を用いるところ)ため、代替案として作られたもの。 OpenUDIDと比べると、ベンダーごとに違う値が生成されるという点が異なる。 実装は今のところiOSのみ。
7. Cookie
- 3rd-Party CookieはiOSに限らずしばしば問題になりますが、CookieそのものはステートレスなHTTP通信において、安全なデータのやり取りを行うためのセッション確立に利用される有用な技術です
8. IMEI (International Mobile Equipment Identity)
- iOS3までは取得する方法が存在しましたが、iOS4で塞がれており、現在は取得する方法は見つかっていないはずです。
9. APNs
- Push通知を実装していないのにdeviceTokenを取得するとリジェクトされるようになり、iOS7では抜本的な対策が行われ、インストールされるアプリ毎に異なるdeviceTokenが割り当てられるようになりました。
10. UUID
- ソフトウェアを一意に識別するIDです。
一意性の範囲 | UDID | UUID | OpenUDID | SecureUDID | IDFV | ASID | MACアドレス |
---|---|---|---|---|---|---|---|
永久一意性*1 | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
IDを利用する度 | ○ | × | ○ | ○ | ○ | ○ | ○ |
再インストール | ○ | × | ○ | ○ | ○ | ○ | ○ |
同V複数アプリ間 | ○ | × | ○ | ○ | ○ | ○ | ○ |
複数ベンダー間 | ○ | × | ○ | × | × | ○ | ○ |
機種変更 | × | × | × | × | × | × | × |
複数機種利用 | × | × | × | × | × | × | × |
利用者の変更*3 | ○ | × | × | × | × | × | ○ |