Bonjour
J'ai une application qui dois récupérer l'ip de l'iphone ou l'ipod touch quelque soit sa version, et quelque soit le type de la connexion (wifi,3G...).
j'utilise cette ip pour localiser l'iphone et retourner dans un tableview un résultat qui dépend de la localisation.
Au début j'ai utilisé cette fonction:
mon application a été acceptée par l'Appstore avec ce code, mais la fonction retourne "error" avecune connexion 3G. donc un résultat vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 - (NSString *)getIPAddress { NSString *address = @"error"; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int success = 0; // retrieve the current interfaces - returns 0 on success success = getifaddrs(&interfaces); if (success == 0) { // Loop through linked list of interfaces temp_addr = interfaces; while(temp_addr != NULL) { if(temp_addr->ifa_addr->sa_family == AF_INET) { // Check if interface is en0 which is the wifi connection on the iPhone if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en1"]) { // Get NSString from C String address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; } } temp_addr = temp_addr->ifa_next; } } // Free memory freeifaddrs(interfaces); return address; }
le problème que j'ai c'est que je ne trouve pas comment tester vu que je n'ai pas d'iphone, et je ne suis pas dans le périmètre de localisation.
j'ai ensuite distribué l'application sur l'appstore en éliminant la ligne en rouge pour que la foncion retourne l'ip quelque soit le type de connexion.
mais malheureusement c'était pas le cas.
l'application a été rejeté par l'appstore, ils ont dit qu'elle crash sous
iPhone 4 and iPod touch running iOS 4.2.1.avec connexion WiFi ou 3G network
est ce que vous pouvez m'aider sur ce coup?
Merci d'avance
Partager