iOS 기기의 uuid가 소프트웨어 업데이트 또는 다른 것과 관련하여 변경됩니까?iOS 기기의 uuid가 소프트웨어 업데이트로 변경됩니까?
1
A
답변
1
아니요, 변경되지 않습니다. 그러나 이제는 deprecated입니다 (개인 정보 보호 문제로 인한 것일 수 있음).
0
앱이 기기에있는 동안 지속되는 'UUID'를 만들 수 있습니다.
+ (NSString *)localUuid {
NSString *ident = [[NSUserDefaults standardUserDefaults] objectForKey:@"unique identifier stored for app"];
if (!ident) {
CFUUIDRef uuidRef = CFUUIDCreate(NULL);
CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef);
CFRelease(uuidRef);
ident = [NSString stringWithString:(NSString *)uuidStringRef];
CFRelease(uuidStringRef);
[[NSUserDefaults standardUserDefaults] setObject:ident forKey:@"unique identifier stored for app"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
return ident;
}
그러나 이것은 명백한 이유로 응용 프로그램에서 사용할 수있는 고유 한 ID를 제공하지 않습니다. 다른 alternative is using the MAC address
#import <sys/types.h>
#import <sys/socket.h>
#import <sys/sysctl.h>
#import <sys/time.h>
#import <netinet/in.h>
#import <net/if_dl.h>
#import <netdb.h>
#import <errno.h>
#import <arpa/inet.h>
#import <unistd.hv
#import <ifaddrs.h>
#if !defined(IFT_ETHER)
#define IFT_ETHER 0x6
#endif
@implementation MACIdentify
- (NSString*)MACAddress {
NSMutableString* result = [NSMutableString string];
BOOL success;
struct ifaddrs* addrs;
const struct ifaddrs* cursor;
const struct sockaddr_dl* dlAddr;
const uint8_t * base;
int i;
success = (getifaddrs(&addrs) == 0);
if(success)
{
cursor = addrs;
while(cursor != NULL)
{
if((cursor->ifa_addr->sa_family == AF_LINK) && (((const struct sockaddr_dl *) cursor->ifa_addr)->sdl_type == IFT_ETHER))
{
dlAddr = (const struct sockaddr_dl *) cursor->ifa_addr;
base = (const uint8_t *) &dlAddr->sdl_data[dlAddr->sdl_nlen];
for(i=0; isdl_alen; i++)
{
if(i != 0)
{
[result appendString:@":"];
}
[result appendFormat:@"%02x", base[i]];
}
}
cursor = cursor->ifa_next;
}
freeifaddrs(addrs);
}
return result;
}
@end
0
아니요. 그것은 항상 동일하게 유지 될 것입니다.
-1
Apple의 OS가 실행되는 iOS 장치에서는 UDID가 변경되지 않습니다.
루트/수정 된 OS를 실행하는 기기에서 임의의 API가 반환하는 값은 영리한 수정자가 원하는 것일 수 있습니다.
그건 그가 묻는 것이 아닙니다. – Abizern
플러스, @HaggleLad가 [다른 질문에 대한 내 대답] (http://stackoverflow.com/a/6993440/400056)에 대한 의견으로 개인 정보 보호를 이유로 MAC을있는 그대로 사용하는 것은 좋지 않습니다. . 예를 들어, MD5 또는 SHA1로 해쉬함으로써 난독 화되어야합니다. – DarkDust