Como obter IMEI no iPhone?

Eu quero pegar o IMEI no iPhone. Eu tento usar o seguinte código:

#import "Message/NetworkController.h" NetworkController *ntc=[[NetworkController sharedInstance] autorelease]; NSString *imeistring = [ntc IMEI]; 

Mas o NetworkController não foi encontrado.

Eu também acho que posso obter uniqueIdentifier usando:

 UIDevice *myDevice = [UIDevice currentDevice]; NSString *identifier = myDevice.uniqueIdentifier; 

Mas isso não pode me ajudar a obter o IMEI.

Alguma sugestão sobre como obter IMEI no iPhone?

   

Descobri que erica havia postado o arquivo de header “Message / NetworkController.h” em ericasadun.com. http://ericasadun.com/iPhoneDocs300/_network_controller_8h-source.html (foi removido agora)

Eu criei um arquivo de header, copiei e colei o arquivo NetworkController.h nele e adicionei o framework privado “Message.framework” ao meu projeto, importo o arquivo de header que eu criei.

Agora eu posso usar o método original que encontrei para obter o número imei.

 NetworkController *ntc = [NetworkController sharedInstance]; NSString *imeistring = [ntc IMEI]; 

[EDITADO] Não funciona mais. App será rejeitado pela Apple. Em vez disso, você terá que usar o UDID. Veja a postagem abaixo.

Você não pode encontrar o IMEI programaticamente no iPhone.

Não existe uma maneira oficial de obtê-lo, mas no framework privado do Apples CoreTelephony.framework existe um método CTGetIMEI que pode ajudá-lo.

Tenho certeza de que existem razões pelas quais você não pode fazer isso facilmente. Aplicativo de desbloqueio automático? Acho que não. Tenho certeza de que a Apple e a AT & T também não gostariam muito.

* # 06 # é o caminho para obtê-lo manualmente.

adicione um arquivo head “CoreTelephony.h” ao seu projeto

CoreTelephony.h

 struct CTServerConnection { int a; int b; CFMachPortRef myport; int c; int d; int e; int f; int g; int h; int i; }; struct CTResult { int flag; int a; }; struct CTServerConnection * _CTServerConnectionCreate(CFAllocatorRef, void *, int *); void _CTServerConnectionCopyMobileIdentity(struct CTResult *, struct CTServerConnection *, NSString **); 

adicione o seguinte código à sua turma

 #import "CoreTelephony.h" struct CTServerConnection *sc=NULL; struct CTResult result; void callback() { } 

agora você pode obter imei facilmente

  NSString *imei; _CTServerConnectionCopyMobileIdentity(&result, sc, &imei); 

Eu fiz uma pesquisa apenas aqui em stackoverflow e a conclusão é que a Apple não permite mais encontrar telefone EMEI após o iOS 6.

Você pode identificar um dispositivo usando o UDID. Eu encontrei minha resposta aqui https://stackoverflow.com/a/19927376/2283308