2012-02-27 19 views
5

Słyszałem kilka plotek, że Apple odrzuca aplikacje, które używały wycofanej metody iOS5: [UIDevice uniqueIdentifier]. Czy ktokolwiek może potwierdzić, że odrzucił swoją aplikację z tego powodu? Znam alternatywne metody używania tej nieaktualnej metody, ale jeden z naszych klientów prosi o korzystanie z biblioteki innej firmy, o której wiemy, że używa tej metody.Czy ktoś miał odrzuconą przez Apple aplikację na iOS do używania urządzeń UDID?

Byłbym zaskoczony, gdyby tak się stało, ponieważ metoda API została uznana za przestarzałą i nie jest prywatna.

Odpowiedz

6

Apple nie odrzuca aplikacji z tego powodu. Zbieram identyfikatory UDID urządzeń wraz z tokenami w moich aplikacjach, które obsługują powiadomienia push i wszystkie zostały zatwierdzone. Identyfikatory UDID są po prostu przestarzałe, co oznacza, że ​​Apple ostatecznie nie zezwoli na dostęp do nich. Wszystko nadal działa i zostanie zatwierdzone.

Słyszałem, że Apple wycofał dostęp do identyfikatorów UDID, aby uniemożliwić programistom i analitykom zewnętrznym identyfikację konkretnych osób. Jeśli tak naprawdę było z powodu problemów z usługą iCloud, firma Apple najwyraźniej naprawiłaby to, a nie przeszkadzała wszystkim innym.

Edit: Wygląda na to Apple jest odrzucenie kilka aplikacje dostępu UDID urządzenia. Aby być bezpiecznym, użyłbym CFUUID do utworzenia losowego unikalnego identyfikatora. Możesz użyć NSUserDefaults lub pęku kluczy, aby go zapisać. Zaletą pęku kluczy jest to, że jeśli użytkownik usunie twoją aplikację, elementy pęku kluczy nie zostaną usunięte, więc nadal będziesz mieć dostęp do identyfikatora UDID, jeśli użytkownik zainstaluje ponownie twoją aplikację. Zostanie usunięty tylko wtedy, gdy użytkownik przywróci swoje urządzenie.

+0

Dzięki Jack. Czy te aplikacje zostały przesłane po wycofaniu tej metody? – Brett

+0

Tak. Dostęp do UDID był nieaktualny w systemie iOS 5.0, a aplikacje zostały przesłane od tego czasu. –

+0

Awesome. Nie sądziłem, że Apple zacznie odrzucać stosowanie wycofanej metody iOS5. – Brett

2

Wydaje się, że App Review egzekwowania tej zasady na aplikacje, które transmisji z UDID bez uzyskania zgody użytkownika - jak sugeruje this post - raczej niż te, które po prostu powołać przestarzałej API.

Mieliśmy aktualizację w aplikacji, która wysłałaby UDID urządzenia na nasz serwer, na którym użyłabyśmy go do zindeksowania konta użytkownika. Postanowiliśmy nie ryzykować i zmienić nasz kod do generowania aplikacji specyficznych unikalny identyfikator, jak proponuje documentation on the deprecation of the UDID

3

Korzystanie Identyfikatory w aplikacjach

rozpoczynających się 1 maja, App Store nie będzie już akceptować nowe aplikacje lub aktualizacje aplikacji uzyskujące dostęp do identyfikatorów UDID. Zaktualizuj aplikacje i serwery, aby powiązać użytkowników z dostawcą lub identyfikatorami reklamowymi wprowadzonymi w iOS 6. Więcej informacji znajdziesz w artykule UIDevice Class Reference.

Źródło: https://developer.apple.com/news/

1

teraz aplikacje nie mogą uzyskać dostępu do UDID i nie musi korzystać z metody uniqueidentifier z UIDevice. Proszę zaktualizować aplikacje i serwery skojarzyć użytkowników z dostawcą lub reklamowych identyfikatorów wprowadzonych w iOS 6

NSUUID *uuid = [[UIDevice currentDevice] identifierForVendor]; 
NSString *uuidString = [uuid UUIDString]; 

i musi dodać ADSupport ramowa

1

Od 1 maja, Apple odrzuca wszystkie aplikacje, które dostęp do UDID . Ale wydaje się, że jedyne, co mogą zrobić, to sprawdzić, czy ciąg "uniqueIdentifier" jest w pliku binarnym, czy też nie.

Więc nawet jeśli nie masz już dostępu do unikalnego identyfikatora telefonu, ale dasz do jednej zmiennej tę samą nazwę, znajdą ją w pliku binarnym, a oni ją odrzuciją, ponieważ nie mogą zrobić różnicy .

Jeśli chcesz wiedzieć, czy plik binarny go zawiera, możesz zmienić rozszerzenie pliku .ipa (eksport do wdrożenia ad-hoc) na .zip, rozpakuj go i wykonaj fgrep -R uniqueIdentifier . w terminalu w folderze danych/folderze . Możesz także wykonać to polecenie w folderze projektu, aby znaleźć pliki zawierające ciąg.

To zadziałało dla mnie.