2014-12-01 2 views
0

'MyApp'내에 일관되게 장치 식별자 문자열을 가져 오는 방법이 있습니까? 'MyApp'앱이 있습니다.응용 프로그램에서 사용자 장치를 일관되게 식별 할 수있는 방법이 있습니까?

즉 사용자가 특정 기기에서 'MyApp'를 사용할 때마다 API를 호출하여 항상 동일한 문자열을 얻을 수 있습니다.

+2

가장 가까운 페이지는 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIDevice_Class/index.html#//apple_ref/doc/uid/TP40006902-CH3-SW49 – Jack

답변

0

identifierForVendor는 설치간에 변경되며, CFUUIDCreate를 사용하는 것이 가장 좋습니다.

if ([[NSUserDefaults standardUserDefaults] valueForKey:@"UUID"] == nil) { 
    CFUUIDRef uuid = CFUUIDCreate(NULL); 
    NSString *uniqueIdentifier = (NSString*)CFBridgingRelease(CFUUIDCreateString(NULL, uuid)); 
    CFRelease(uuid); 
    [[NSUserDefaults standardUserDefaults] setObject:uniqueIdentifier forKey:@"UUID"]; 
} 

위의 내용은 앱을 재설치 한 후에도 유지됩니다.

+0

입니다. 기기를 식별하지 않습니다. 장치를 재설정하고 장치를 다시 설치하면 새 GUID가 만들어집니다. – Krumelur

+1

> 위의 내용은 앱을 다시 설치 한 후에도 유지됩니다. 하지만 기기가 지워지지는 않습니다. 그것은 때때로 일어난다. 아마도 지금은 실제로 일관성있는 장치 별 ID를 얻을 수있는 방법이 없습니다 – mrvn

+0

MAC 주소 등을 사용하여 장치에서 자신의 UDID를 작성할 수 있지만 그렇게하면 Apple이 UDID를 사용하지 못하게됩니다. MAC 주소로 UDID를 바꾸면 실제 요구 사항은 무엇입니까? 상수 UDID가 정말로 필요한가요? –

0

Apple은 개인 식별 정보를 전송하여 앱을 거부 할 수 있습니다. 대신 광고 ID를 사용

#import <AdSupport/AdSupport.h> 

// Advertising ID 
ASIdentifierManager *adManager = [ASIdentifierManager sharedManager]; 
NSUUID *uuid = [adManager advertisingIdentifier]; 
NSString *stringRepresentation = uuid.UUIDString; 

은 그냥 설정에서 '광고 추적 제한'확인 한 사용자에 대한 제한을 포함하여 UDID 사용을위한 애플의 가이드 라인을 준수해야합니다.

관련 문제