2012-03-09 26 views
16

thể trùng lặp:
UIDevice uniqueIdentifier Deprecated - What To Do Now?Thay thế cho ID thiết bị iPhone (UDID)

Thậm chí nếu Apple không phải tại MWC Barcelone của (Đại hội thế giới di động), đã có sự chắc chắn rằng nhận được deviceID sẽ không còn được dùng nữa trong SDK iOS nữa.

Tôi không hiểu tại sao Apple muốn hạn chế điều này, nhưng đó không phải là chủ đề.

Tôi phải chuẩn bị đơn đăng ký thay thế vì người dùng của tôi được xác định và được biết đến để sử dụng tốt hơn ứng dụng của tôi (ví dụ: không cần đăng nhập hoặc tạo tài khoản). Và tôi chắc chắn tôi không đơn độc trong trường hợp đó.

Vì vậy, bất kỳ ai biết cách thay thế từ việc nhận ID thiết bị? Ví dụ, có số nhận dạng duy nhất khác, chẳng hạn như địa chỉ MAC? Bạn chuẩn bị ứng dụng của mình như thế nào?

+0

bạn muốn id thiết bị iphone hoặc sth khác? –

+0

Tôi muốn có một định danh duy nhất khác là deviceId hoặc một cách khác để xác định người dùng. – Martin

Trả lời

5

CẬP NHẬT

gì về việc sử dụng CFUUID để tạo ra một UUID. Bạn có thể so với lưu trữ nó trong KEYCHAIN ​​ về sự ra mắt đầu tiên .. bạn có thể nhận được nó như thế này ...

NSString *uuid = nil; 
CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault); 
if (theUUID) { 
    uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID)); 
    [uuid autorelease]; 
    CFRelease(theUUID); 
} 

và cũng bởi ti phương pháp uniqueIdentifier, Apple đang gợi ý rằng bạn không xác định trên mỗi thiết bị nhưng thay vào đó mỗi lượt cài đặt ứng dụng. có thể là ngày mai họ có thể quyết định từ chối ứng dụng của bạn để thực hiện việc này ..:/ hy vọng điều này sẽ hữu ích.

+0

Cảm ơn, nhưng sẽ không giống nhau nếu người dùng xóa và cài đặt lại ứng dụng (trong đó, tôi thừa nhận, không xảy ra thường xuyên). Một điều nữa, UUID này được tạo ra trên một máy tính, vì vậy có thể không phải là duy nhất thông qua danh sách người dùng của chúng tôi trên máy chủ của chúng tôi. – Martin

+0

@Martin Còn lưu trữ giá trị trong keychain ... thì sao? điều đó sẽ không biến mất sau khi ứng dụng được gỡ cài đặt ..? và cũng bằng cách từ chối phương thức uniqueIdentifier, Apple đề xuất rằng bạn không xác định cho mỗi thiết bị mà thay vào đó mỗi lần cài đặt ứng dụng. có thể là ngày mai họ có thể quyết định từ chối ứng dụng của bạn để thực hiện việc này ..:/ –

+0

@Martin vui lòng kiểm tra cập nhật. –

2

thử này

- (NSString *)getDeviceID 
{ 
    NSString *uuid = [self gettingString:@"uniqueAppId"]; 
    if(uuid==nil || [uuid isEqualToString:@""]) 
    { 
     CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault); 
     if (theUUID) 
     { 
      uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID)); 
      [self savingString:@"uniqueAppId" data:uuid]; 
      [uuid autorelease]; 
      CFRelease(theUUID); 
     } 
    } 
    return uuid; 

// this is depreciated 
// UIDevice *device = [UIDevice currentDevice]; 
// return [device uniqueIdentifier]; 
} 
+0

Cảm ơn, đó là câu trả lời giống như dưới đây. Xem bình luận của tôi. – Martin

+0

thì bạn phải sử dụng địa chỉ mac của thiết bị – hchouhan02

2

Vui lòng triển khai logic mới để có được UDID.it an toàn được cung cấp bởi bên thứ ba

Learn about free solution:

Điều này thực sự hoạt động tốt và rất dễ dàng để implememt mà không làm cho nó một fuss để thay thế cho phương pháp phản đối.

+0

Cảm ơn bạn đã liên kết. Có một số api UID đang phát triển trên web. Tôi chưa thử nghiệm một trong số đó. – Martin

+0

Liên kết bị hỏng –

+0

Hi Andre Tôi đã cập nhật liên kết. – Shantanu

Các vấn đề liên quan