iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど
外部サービスと通信する際、アプリケーションがインストールされているiOS機器を区別できるユニークな識別子が必要になる事があると思うが、iOS 5より以前では、以下のコードでiOS機器毎にユニークなIDを取得できる。
NSString *uniqueID = [[UIDevice currentDevice] uniqueIdentifier];
NSLog(@"UDID: %@", uniqueID);
iOS5からは、この方法は推奨されなくなった。そこで、多くの場合、以下の様なコードでユニークなIDを取得している。
- (NSString *)createUUID
{
CFUUIDRef uuid = CFUUIDCreate(NULL);
NSString *uuidString = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, uuid);
CFRelease(uuid);
return uuidString;
}
ただし、このメソッドは呼ばれる度にユニークなIDを返す。その為、そのiOS機器にインストールされたアプリケーションという単位でユニークな識別子が欲しい場合は、この値をキーチェインに保存して、キーチェインに存在していたらそれを理由するという方法が、よく行われていると思う。