2011-04-08 15 views
15

Verileri depolamak ve veri alışverişi yapmak için bir Sunucuyla iletişim kuran bir iPhone Uygulaması üzerinde çalışıyorum. Mümkün olduğu kadar basit yapmak istediğimden, kullanıcı hesabı için kayıt yaptırmaktan (veya şifremin de kullanılmasını) kaçınmak istiyorum. IPhone cihazının UDID'ini almak ve (örneğin, izin vermek) mümkün mü? Sunucuya aktardığım ve kimlik doğrulaması için kullandığım bir MD5-hash? Bu kimlik benzersiz olduğundan, giriş verisi oluşturmaya gerek kalmadan kullanıcı tarafından sunucudan kullanıcı girişi yapmak ve verileri almak için kullanabilirdim.Benzersiz kullanıcı kimliği oluşturmak için UDID kullanma

bir veritabanında, UDID erişmek bunun bir MD5 hash yapmak ve saklamak için izin var mı?

İkinci soru şudur: UDID'yi nasıl alabilirim? ;-)

cevap

15

Evet, izin verilen, ancak belgelerinden, aşağıda bildirilen ne dikkate almak:

AppStore İnceleme kurallar bulundu seçebilirsiniz.

aşağıdaki gibi UDID alabilirsiniz:

NSString *udid = [[UIDevice currentDevice] uniqueIdentifier]; 

Not resmi Apple'ın belgelerine aşağıdaki: (bazen Benzersiz Cihaz Tanımlayıcısı'nın UDID olarak kısaltılır)

Bir cihazın benzersiz tanıtıcı bir karma değerdir cihaz seri numarası gibi çeşitli donanım tanımlayıcılarından oluşur. Her cihaz için benzersiz olması garantilidir. UDID, cihaz adından bağımsızdır. SIM (abone kimlik modülü) kartı kullanan cihazlar için UDID, SIM karttan bağımsızdır.

Kullanıcı güvenliği ve gizliliği için, bir aygıtın benzersiz tanımlayıcısını bir kullanıcı hesabıyla herkese açık olarak ilişkilendirmemelisiniz.

Sunucunuza uygulamaya özgü verileri tanımlamak için UDID'yi uygulamaya özel bir kullanıcı kimliği ile birlikte kullanabilirsiniz. Örneğin, kayıtlı ürünlere erişimi kontrol etmek için veya merkezi bir sunucuda bir oyun için yüksek puanlar kaydederken cihaz kullanıcısı bir kombinasyon kimliği kullanabilirsiniz. Ancak, bir oyun geliştiriyorsanız, Game Kit Programlama Kılavuzu'nda açıklandığı gibi Game Center’ın oyuncu tanımlayıcı anahtarını kullanmak isteyebilirsiniz.

Önemli: Kullanıcı bilgilerini hiçbir zaman UDID'ye dayanarak saklamayın. Her zaman UDID ve uygulamaya özel kullanıcı kimliği bir arada kullanın. Birleştirilmiş kimlik, bir kullanıcının bir cihazı başka bir kullanıcıya geçirmesi durumunda, yeni kullanıcının orijinal kullanıcının verilerine erişemeyeceğini garanti eder.

+0

İyi bilgi ... Teşekkürler – bryanmac

+2

'[[UIDevice currentDevice] uniqueIdentifier]' iOS 5.0'da kullanımdan kaldırıldı, yerine 'CFUUIDCreate()' kullanın! –

2

Sanırım UDID'yi kastediyorsunuz, değil mi? Belki de bu, this one

+0

Yay, haklısın teşekkürler ;-) – tamasgal

3

gibi benzer soruları ve yanıtları bulamadınız çünkü cihazın çalışan bir aboneliği olup olmadığını kontrol etmek için UDID kullanıyorum. UDID Alma kolaydır:

NSString *udid = [[UIDevice currentDevice] uniqueIdentifier]; 

App Store kurallarına kadar okursanız, kullanıcı bir diğer cihaza abonelikleri taşımak için bir hesap oluşturmak icar hakkında bir bölümü vardır. Bu bölümde Apple, hesap oluşturmanın kullanıcının girmesi gereken bir kullanıcı adı ve parola olması gerektiğini açıkça belirtmektedir. Kişisel bir bilgi olduğu için kullanıcı adı bir e-posta adresi olamaz.

Uygulamada veriler ağır basarsa, isteğe bağlı bir kullanıcı hesabı oluşturulması önerilir. http://developer.apple.com/appstore/resources/approval/guidelines.html

+0

Bahsettiğiniz abonelik kurala bir bağlantı eklemek misiniz Apple'da. –

2

UDID tarafından iOS 6 ve üstü böylece benzersiz belirleyebilir cihaza beri gizlidir:

NSString *UDID = [[UIDevice currentDevice] identifierForVendor];