2012-09-26 15 views
15

Tôi đã sử dụng đoạn mã sau để get định danhCách sử dụng mã định danhForVendor trong ios5.?

 deviceName = [[UIDevice currentDevice]uniqueIdentifier]; 

Nhưng tôi đã nhận uniqueIdentifier cảnh báo bị phản đối trong ios5.

để biết cách nhận giá trị số nhận dạng trong ios5?

+0

bản sao có thể có của [UIDevice uniqueIdentifier không được chấp nhận - Cần làm gì bây giờ?] (Http://stackoverflow.com/questions/6993325/uidevice-uniqueidentifier-deprecated-what-to-do-now) –

Trả lời

18

Bạn có thể sử dụng đoạn mã sau

if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) { 
    // This will run if it is iOS6 or higher 
    return [[[UIDevice currentDevice] identifierForVendor] UUIDString]; 
} else { 
    // This will run before iOS6 and you can use openUDID or other 
    // method to generate an identifier 
} 

Và bằng cách này bạn có thể duy trì các yêu cầu tối thiểu trước.

Mã nhận dạng này là duy nhất cho tất cả các ứng dụng từ một nhà cung cấp. Nếu bạn muốn định danh duy nhất cho thiết bị bạn cần sử dụng:

if (!NSClassFromString(@"ASIdentifierManager")) { 
    // This will run before iOS6 and you can use openUDID, per example... 
    return [OpenUDID value]; 
} 
return [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; 

Warning: Có một lỗi trên iOS6 rằng báo cáo "vô giá trị" nhận dạng nếu thiết bị đã được cập nhật "bằng đường hàng không" - More info

0

Bạn không thể nhận UUID nữa. Không được phép làm như vậy, ứng dụng của bạn sẽ bị Apple từ chối.

+2

cách nhận thiết bị token trong ios 6 bất kỳ ý tưởng nào –

0

phương pháp chứng minh bởi J.Costa là một trong những tốt cho iOS 6.

Nhưng nếu bạn muốn giữ lại cùng một định danh trong ứng dụng của bạn khi sử dụng bạn nâng cấp điện thoại của mình, hoặc trong một số ứng dụng của bạn (Unle ss họ chia sẻ cùng một ID Seed Bundle), sử dụng: https://github.com/blackpixel/BPXLUUIDHandler

Rất hữu ích!

+0

BPXLUUIDHandler gọi tới 'return [[UIDevice currentDevice] uniqueIdentifier];' sẽ thất bại trên một giả lập iPhone 5 (vì vậy tôi không chắc chắn lý do là để bảo vệ trên TARGET_IPHONE_SIMULATOR). BPXLUUIDHandler thiếu các hằng số chuỗi khóa thích hợp .... UDID có thể hiển thị trên máy Mac hoặc PC qua iTunes hoặc trên đám mây của Apple. Yêu cầu bảo mật do nhà phát triển thúc đẩy thực sự là các hố. – jww

1

trong ios 7 bạn sử dụng tốt hơn [UIDevice identifierForVendor] hoặc bạn gặp rắc rối, vì chỉ có một MAC giả được trả về.

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