Há um artigo sobre como garantir que você nunca perca o UUID gerado, mesmo para o iOS 5 e posterior, usando o KeyChain. blog.onliquid.com/…
jasoares 28/05
Respostas:
323
[[UIDevice currentDevice] uniqueIdentifier]
Retorna o ID exclusivo do seu iPhone.
EDIT: -[UIDevice uniqueIdentifier]agora está obsoleto e os aplicativos estão sendo rejeitados da App Store por usá-lo. O método abaixo agora é a abordagem preferida.
Se você precisar criar vários UUID, use este método (com ARC):
O [[UIDevice currentDevice] uniqueIdentifier] foi descontinuado a partir do iOS 5, e a Apple agora está rejeitando aplicativos que o utilizam (em março de 2012). O restante da resposta ainda é preciso.
Gorm 28/03
13
Tendo discutido essa questão há algum tempo, tenho certeza de que a pergunta original não era sobre o identificador exclusivo do dispositivo, mas sobre apenas obter um identificador exclusivo geral útil para algo.
Ryan McCuaig
12
Para tornar esse ARC compatível, você deve converter o objeto string e remover a chamada de liberação automática. Em outras palavras, adicione o elenco: NSString * string = (__bridge_transfer NSString *) CFUUIDCreateString (NULL, theUUID);
Paul de Lange
65
No iOS 6, você pode usar: NSString * UUID = [[NSUUID UUID] UUIDString];
Simétrica
1
Se eu usar [[NSUUID UUID] UUIDString]; no iOS7 e superior, meu aplicativo não será rejeitado pela Apple?
Whoami
100
Aqui está o código simples que estou usando, compatível com o ARC.
Honestamente, essa deve ser a resposta aceita, a pergunta original solicitou um gerador de GUID ou UUID e todos responderam como obter o UDID do telefone. Um identificador universalmente único (UUID) e um identificador de dispositivo exclusivo (UDID) não são a mesma coisa.
Joe
1
aqui está uma linha reta: NSString * UUID = [[NSUUID UUID] UUIDString];
Esta é de longe a solução mais simples. Se você não precisar oferecer suporte antes do iOS 6, use isso. Eu estava usando IDs permanentes gerados por dados principais, mas isso é muito melhor. +1
Sean
Perfeito, obrigado por isso! Esta é a minha resposta de +1 para o dia :) #
30613 justinhartman
Ele muda toda vez que executo o aplicativo no simulador.
Gajendra K Chauhan
46
Revendo a documentação do desenvolvedor da Apple, descobri que o objeto CFUUID está disponível no iPhone OS 2.0 e posterior.
Isso retorna um identificador exclusivo para o processo. Não tem semelhança com um GUID. Dos documentos: "O ID inclui o nome do host, o ID do processo e um registro de data e hora, o que garante que o ID seja exclusivo para a rede"
Matt Spradley
Você pode estar certo. É uma linha pragmática e provavelmente não é tão à prova de balas quanto o CFUUID. Quem precisa de maior rigor deve recorrer ao CoreFoundation.
Respostas:
Retorna o ID exclusivo do seu iPhone.
Se você precisar criar vários UUID, use este método (com ARC):
EDIT: 29 de janeiro de 2014: se você estiver segmentando o iOS 6 ou posterior, agora poderá usar o método muito mais simples:
fonte
Aqui está o código simples que estou usando, compatível com o ARC.
fonte
No iOS 6, você pode usar facilmente:
Mais detalhes em Documentações da Apple
fonte
Revendo a documentação do desenvolvedor da Apple, descobri que o objeto CFUUID está disponível no iPhone OS 2.0 e posterior.
fonte
Em Swift :
fonte
A técnica mais simples é usar
NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]
. Consulte a referência de classe NSProcessInfo .fonte
No Swift 3.0
fonte
Fiz upload da minha implementação simples, mas rápida, de uma classe Guid para ObjC aqui: obj-c GUID
Ele também pode analisar de e para vários formatos de string.
fonte