2012-03-21 1 views
5

저는 초보자 iPhone 개발자로서 IBAction 버튼을 통해 레이블에 iPhone 또는 App 고유 식별자를 표시하려고합니다. 나는 약간 연구했고 코드의 일부가 사용되지 않고 대신 CFUUID가 사용된다는 것을 알고 있습니다. 아래 코드는 제가 사용했던 코드입니다. 그러나 IBAction 버튼을 누를 때마다 UUID가 변경됩니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?CFUUID UUID를 지속적으로 변경하십시오.

CFUUIDRef udid = CFUUIDCreate(NULL); 

NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid); 

uuid.text= udidString; 

답변

5

당신은 그러나,이 방법은

[[UIDevice currentDevice] uniqueIdentifier] 

을 감가 상각을 사용할 수 있습니다. 각 장치에 대한 고유 식별자를 얻으려면 CFUUIDCreateString을 사용하고 결과를 사용자 기본값으로 저장할 수 있습니다. 앱이 실행될 때마다이 값을로드하십시오. 앱을 삭제했다가 다시 설치하면이 값이 달라집니다.

앱 설치에서 고유 한 식별자가 필요한 경우 네트워크 MAC 주소를 사용할 수 있습니다.

+6

키 체인에 저장하면 앱 삭제/재설치 후에도 유지됩니다. :) – DougW

+0

애플은 얼마 전에 Network MAC Address를 깨뜨 렸습니다. – LightningStryk

8

나는 당신이 그 documentation을 이해할 수있을 겁니다 읽기, CFUUIDCreate()의 목적을 오해 생각합니다.

API가 적절하게 목적을 달성하고 있다고 생각합니다. 고유 한 식별자를 범용으로 만드는 것은 사용자가이 함수를 호출 할 때마다 고유 한 식별자를 임의로 반환한다는 것을 의미합니다.

+0

앱에 대한 상수 식별자를 가져 오는 다른 방법이 있습니까? – wakaka

+1

하나를 저장하고 그대로 두십시오. – Sneakyness

4

위에서 언급 한 것처럼 CFUUIDCreate는 실행될 때마다 다른 UUID를 생성하기위한 것입니다. 원한다면 앱을 만들어 앱에 저장할 수도 있고 https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5 같은 것을 시도 할 수도 있습니다. 기본적으로 MAC 주소의 MD5 해시를 기반으로 UIDevice에 uniqueGlobalDeviceIdentifier 기능을 제공합니다.

[[UIDevice currentDevice] uniqueGlobalDeviceIdentifier] 
관련 문제