Ada artikel tentang cara memastikan Anda tidak pernah kehilangan UUID yang dihasilkan, bahkan untuk iOS 5 dan yang lebih baru menggunakan KeyChain. blog.onliquid.com/...
jasoares
Jawaban:
323
[[UIDevice currentDevice] uniqueIdentifier]
Mengembalikan ID Unik iPhone Anda.
EDIT: -[UIDevice uniqueIdentifier]sekarang sudah tidak digunakan lagi dan aplikasi ditolak dari App Store untuk menggunakannya. Metode di bawah ini sekarang merupakan pendekatan yang lebih disukai.
Jika Anda perlu membuat beberapa UUID, cukup gunakan metode ini (dengan ARC):
[[UIDevice currentDevice] uniqueIdentifier] telah ditinggalkan sejak iOS 5, dan Apple sekarang menolak aplikasi yang menggunakannya (per Maret 2012). Sisa responsnya masih akurat.
Gorm
13
Setelah membahas pertanyaan ini untuk sementara waktu, saya cukup yakin pertanyaan awal bukan tentang pengidentifikasi unik perangkat, tetapi tentang hanya mendapatkan pengenal unik umum yang berguna untuk sesuatu.
Ryan McCuaig
12
Untuk membuat ARC ini sesuai, Anda harus melemparkan objek string dan menghapus panggilan autorelease. Dengan kata lain tambahkan para pemain: NSString * string = (__bridge_transfer NSString *) CFUUIDCreateString (NULL, theUUID);
Paul de Lange
65
Pada iOS 6 Anda dapat menggunakan: NSString * UUID = [[NSUUID UUID] UUIDString];
Simetris
1
Jika saya menggunakan [[NSUUID UUID] UUIDString]; di iOS7 dan di atasnya, bukankah aplikasi saya akan ditolak oleh Apple?
Whoami
100
Berikut adalah kode sederhana yang saya gunakan, sesuai dengan ARC.
Sejujurnya ini harus menjadi jawaban yang diterima, pertanyaan asli meminta generator GUID atau UUID, dan semua orang menjawab dengan cara mendapatkan UDID ponsel. Pengidentifikasi Unik Universal (UUID) dan Pengidentifikasi Perangkat Unik (UDID) bukan hal yang sama.
Joe
1
di sini adalah garis lurus satu NSString * UUID = [[NSUUID UUID] UUIDString];
Sejauh ini, ini adalah solusi paling sederhana. Jika Anda tidak harus mendukung sebelum iOS 6, gunakan ini. Saya menggunakan data inti yang menghasilkan ID permanen, tetapi ini jauh lebih baik. +1
Sean
Sempurna, terima kasih untuk ini! Ini adalah jawaban +1 saya untuk hari ini :)
justinhartman
Itu berubah setiap kali saya menjalankan aplikasi di simulator.
Gajendra K Chauhan
46
Meninjau dokumentasi Pengembang Apple, saya menemukan objek CFUUID tersedia di iPhone OS 2.0 dan yang lebih baru.
Itu mengembalikan pengidentifikasi unik untuk proses. Tidak memiliki kemiripan dengan GUID. Dari dokumen: "ID mencakup nama host, ID proses, dan cap waktu, yang memastikan bahwa ID tersebut unik untuk jaringan"
Matt Spradley
Anda mungkin benar. Ini adalah linier pragmatis, dan mungkin tidak antipeluru seperti CFUUID. Siapa pun yang membutuhkan kekakuan yang lebih besar harus turun ke CoreFoundation.
Jawaban:
Mengembalikan ID Unik iPhone Anda.
Jika Anda perlu membuat beberapa UUID, cukup gunakan metode ini (dengan ARC):
EDIT: Jan, 29 2014: Jika Anda menargetkan iOS 6 atau lebih baru, Anda sekarang dapat menggunakan metode yang lebih sederhana:
sumber
Berikut adalah kode sederhana yang saya gunakan, sesuai dengan ARC.
sumber
Di iOS 6 Anda dapat dengan mudah menggunakan:
Lebih detail dalam Dokumentasi Apple
sumber
Meninjau dokumentasi Pengembang Apple, saya menemukan objek CFUUID tersedia di iPhone OS 2.0 dan yang lebih baru.
sumber
Dalam Swift :
sumber
Teknik paling sederhana adalah menggunakan
NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]
. Lihat referensi kelas NSProcessInfo .sumber
Di Swift 3.0
sumber
Saya telah mengunggah implementasi sederhana saya dari kelas Guid untuk ObjC di sini: obj-c GUID
Itu dapat menguraikan ke dan dari berbagai format string juga.
sumber