Esiste un modo per ottenere l'identificativo del dispositivo iOS nell'SDK di iOS? Vorrei accedere l'identificativo che viene presentato dal Xcode in Organizzatore - Dispositivi sezione, qualcosa di simile: 21xb1fxef5x2052xec31x3xd3x48ex5e437xe593Recupera identificativo dispositivo iOS
risposta
Dal Apple Documentation:
Una stringa alfanumerica unica per ogni dispositivo in base a vari hardware dettagli. (sola lettura) (Obsoleto in iOS 5.0. Utilizzare la proprietà identificatoreForVendor di questa classe o la proprietà di IDIdentifier advertising della classe ASIdentifierManager invece, come appropriato, o utilizzare il metodo UUID della classe NSUUID su creare un UUID e scrivere al database di default dell'utente.)
Sì c'è.
[[UIDevice currentDevice] uniqueIdentifier]
EDIT: Tuttavia questo è deprecato in iOS 5. Questo identificatore non deve più essere utilizzato in iOS 5. Leggi this SO postale per maggiori dettagli.
Questo è obsoleto in iOS 5 e le applicazioni che lo utilizzano non saranno consentite nell'App Store. –
Sembra che si può accedere UDID sotto iOS 6 ancora, ma è deprecato dal iOS 5.0 e non si deve utilizzare (in ogni caso avrai avvertimento circa che)
[UIDevice currentDevice].uniqueIdentifier
Se è necessario identificatore univoco si dovrebbe invece usare:
[UIDevice currentDevice].identifierForVendor
o se è collegato con un certo tipo di pubblicità allora:
// from AdSupport.framework
[ASIdentifierManager sharedManager].advertisingIdentifier
Tuttavia queste due nuove proprietà sono disponibili solo in iOS> = 6.0, anche advertisingIdentifier non è davvero univoco (sto ricevendo molti duplicati da quello).
suppongo che si può fare una cosa del genere, se si wan't per supportare anche iOS 6 <:
UIDevice *device = [UIDevice currentDevice];
NSString *ident = nil;
if ([device respondsToSelector:SEL(identifierForVendor)]) {
ident = [device.identifierForVendor UUIDString];
} else {
ident = device.uniqueIdentifier;
}
ma non sono sicuro di come mela risponderà a quella durante la revisione.
È inoltre possibile utilizzare alcune soluzioni di terze parti come
openUDID o
secureUDID
. Gli UDID aperti e sicuri sono deprecati - utilizzare l'identificatore per il venditore/la pubblicità.
Aggiornamento
più Una possibilità è quella di utilizzare l'indirizzo MAC come base per hash univoco, per esempio, è possibile utilizzare il codice
ODIN1-
source is here
Come dell'indirizzo iOS7 MAC c'è più a lungo disponibile. (si può leggere ma sarà sempre lo stesso indirizzo fittizio 02: 00: 00: 00: 00: 00).
La proprietà è obsoleta in iOS 5.0 – aumanets
sì, mi spiace, all'inizio ho scritto uniqueIdentifier invece di identifierForVendor, ma comunque penso che fosse abbastanza ovvio che qualcosa è sbagliato quando ho scritto che non dovresti usare uniqueIdentifier e in seconda linea che tu dovrebbe usarlo;) – lupatus
SecureUDID non è più supportato da Crashlytics; scrivono: "Raccomandiamo di utilizzare invece il fornitore iOS 6 e gli identificatori pubblicitari di Apple". –
si possono trovare identificatore univoco del dispositivo come
[[UIDevice currentDevice] uniqueIdentifier]
+ (NSString *)uuid
{
NSString *uuidString = nil;
CFUUIDRef uuid = CFUUIDCreate(NULL);
if (uuid) {
uuidString = (NSString *)CFUUIDCreateString(NULL, uuid);
CFRelease(uuid);
}
return [uuidString autorelease];
}
Funziona al 100%, anche su simulatori di troppo ...
NSString* identifier = nil;
if([UIDevice instancesRespondToSelector:@selector(identifierForVendor)]) {
// iOS 6+
identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
} else {
// before iOS 6, so just generate an identifier and store it
identifier = [[NSUserDefaults standardUserDefaults] objectForKey:@"identiferForVendor"];
if(!identifier) {
CFUUIDRef uuid = CFUUIDCreate(NULL);
identifier = (__bridge_transfer NSString*)CFUUIDCreateString(NULL, uuid);
CFRelease(uuid);
[[NSUserDefaults standardUserDefaults] setObject:identifier forKey:@"identifierForVendor"];
}
}
- 1. Univocità dispositivo mobile per iOS e Android
- 2. Caratteri sul dispositivo iOS
- 3. iOS: modifica volume dispositivo
- 4. RS232 per dispositivo iOS
- 5. Recupera data e ora da UIDatePicker iOS
- 6. Sul dispositivo server WebSocket iOS
- 7. identificativo C# previsto?
- 8. Identificativo utente registrato
- 9. informazioni identificativo processo log4
- 10. Come generare un identificativo univoco che dovrebbe funzionare in tutte le versioni di iOS?
- 11. Xcode - cambiamento identificativo fascio, ma non il nome del prodotto
- 12. Come rintracciare il dispositivo (iOS e Android) dispositivo utilizzando PhoneGap
- 13. KeyChain iOS che non recupera i valori dallo sfondo
- 14. è possibile ottenere un numero identificativo univoco da un dispositivo mobile?
- 15. 'Storyboard non contiene un controller di vista con identificativo' solo sul dispositivo
- 16. AssertionFailure: "identificativo nullo" - FluentNH + SQLServerCE
- 17. Ottieni identificativo risorsa dal nome
- 18. C++ funzione di chiamata identificativo
- 19. Objective-C - Errore identificativo previsto
- 20. L'autorotazione iOS 6 nel simulatore varia dall'attuale dispositivo iOS 6
- 21. remoteControlReceivedWithEvent chiamato su dispositivo iOS 7.0 ma non iOS 8.0
- 22. Installa app iOS sul dispositivo senza programma sviluppatore, iOS 5.1
- 23. iOS - UIImmagine imageNamed: restituisce null sul dispositivo
- 24. Avviare YouTube App nel dispositivo iOS
- 25. fastlane: distribuire su un dispositivo iOS locale
- 26. iOS 7 simulatore vs differenze di dispositivo?
- 27. Scegliere di non supportare il dispositivo iOS
- 28. Esegui dispositivo iOS 6 come periferica BLE
- 29. Comunicazione con un dispositivo BlueSMiRF da ios
- 30. Scansione dispositivo iOS bloccata per dispositivi BTLE
Perché si vuole ottenere tale identificatore ? –
Ho bisogno di identificare univocamente il dispositivo – aumanets