2011-10-30 9 views
5

Jest to prawdopodobnie długi rzut oka, ale nie zaszkodzi zapytać ...
Czy myślisz, że możliwe jest uzyskanie adresu IP hosta kompilacji podczas budowania systemu iOS w Objective-C pod kodem Xcode?
Przydałby się mój test, gdyby było to możliwe.
Na przykład:Czy można uzyskać lokalny adres IP z preprocesora DEFINE w Objective-C?

NSString* backendUrl = [NSString stringWithFormat:@"http://%@:5000/", HOST_IP]; 

Gdzie mogę oczekiwać HOST_IP (jeśli było coś takiego), aby być coś takiego, ale oczywiście automatycznie kontrolowany w czasie kompilacji do utrzymywania prawidłowej IP:

#define HOST_IP @"172.76.77.5" 

Odpowiedz

3

Brak dogodnego rozwiązania, ale oto kilka opcji do rozważenia.

  1. W swojej #define wpisz komputera host-name (jeśli jest w sieci LAN) - http://mylaptop:5000/ lub po prostu zapisać się do bezpłatnej domenie @http://www.no-ip.com/

  2. Jeśli jest to konieczne, aby konkretnie mają #define makro zawierające twój adres IP, możesz po prostu napisać mały skrypt bash, który aktualizuje zdefiniowany ip w twoim pliku .m/.cpp/.h lub cokolwiek posiada ten #define. to możesz dodać skrypt jako fazę przed budową lub po prostu uruchomić skrypt, gdy wiesz, że adres IP się zmienił. chociaż przyznaję, że to trochę hackish.

+0

Dobre pomysły - opcja nr 2 brzmi dobrze. – DouglasHeriot

+0

Twoje nie. 2 byłoby moim rozwiązaniem. Trochę hacky, ale niezupełnie złe. – joerick

0

Nie wiem, czy to działa, ale może można coś zrobić jak

static NSString *HOST_IP; 

-(id)init 
{ 
    if (self = [super init]) 
    { 
     HOST_IP = // Your code 
    } 
    return self; 
} 

coś takiego może działać, ale nie jestem pewien, co się dzieje, kiedy zwolnić klasę.

+0

Przepraszam, to by nie działało. Twoja metoda zachowa adres IP, jeśli urządzenie jest uruchomione. jednak pytałem o adres IP serwera kompilacji (który jest także moim serwerem do debugowania) – Ran

Powiązane problemy