複数アプリ間で同一IDを取得する
記事のタイトルつけるセンスが無い(切実)
アプリAとアプリBをタオル株式会社(仮)がリリースしたとして、
アプリAとアプリBを同時にやってくれているユーザーにインセンティブあげたい!という場合に
ユーザーを特定するための同一IDの取得が必要になる。
UUIDではアプリごとにユニークなIDになってしまうけど、開発元と端末からユニークIDを生成してくれるものがあった。
つまり、アプリAとアプリBで同じIDが取得できる!(ただし同開発元に限る)
UIDevice.h
@property(nonatomic,readonly,retain) NSUUID *identifierForVendor NS_AVAILABLE_IOS(6_0); // a UUID that may be used to uniquely identify the device, same across apps from a single vendor.
iOS6.0以降でしか利用できないが、identifierForVenderというのが定義されている。
UIDeviceで定義されているので、以下のようにしてUUIDと同じように取得できる。
NSUUID *ideForVender = [UIDevice currentDevice].identifierForVender; NSString *idForVenderString = [identifierForVender UUIDString];
NSUUIDをalloc initするよりちょっとだけ簡単だし、同じ会社で出してて別のIDがどうしても必要!っていうことも少なそうだから、identifierForVender使っておけばいいなじゃないかな!
iOS6.0未満はもう1割くらいしかいないらしいので、いいんじゃないかな。
追記 20130717(水)
アプリAとアプリBの認証にidentifierForVenderを使っている場合、
アプリAを1からやり直したい!と思ってアプリAを削除→再インストールしたとしても、
端末内にアプリAと同じ開発元のアプリBが残っていると、同じIDになってしまう。
データが消せない!などの弊害になりかねない感じ。
認証はUUIDを利用し、連携アプリをプレイしているかどうかのチェックのために
identifierForVenderも併用する感じがいいのかな?