Имя хост-компьютера симулятора iPhone / iPad - PullRequest
1 голос
/ 10 января 2011

Мне нужно знать имя хост-машины для симулятора iPhone / iPad.Я думаю, что это должно быть возможно, но я еще не смог найти путь.Зачем мне это нужно?Это связано с тем, что [[UIDevice currentDevice] name] возвращает одно и то же имя «iPhone Simulator» для любого симулятора, работающего в той же сети.И мне нужно работать с конкретным, расположенным на Mac, именем «My Mac Dev Machine».Приложение, которое запускается на симуляторах, должно быть в состоянии определить, что оно работает на симуляторе «My Mac Dev Machine» и должно разрешать соединение из сети.Есть идеи?

Ответы [ 2 ]

1 голос
/ 02 апреля 2013

У меня была такая же проблема, и я смог использовать uname () в симуляторе для получения имени узла хоста, например:

#if TARGET_IPHONE_SIMULATOR
#include <sys/utsname.h>
#endif

...

#if TARGET_IPHONE_SIMULATOR
- (NSString *)testProxyHeaderValue {
    struct utsname name = {};
    uname(&name);
    return [NSString stringWithFormat:@"iPhone Simulator @ %s", name.nodename];
}
#else
- (NSString *)testProxyHeaderValue {
    return [[UIDevice currentDevice] name];
}
#endif

Имя узла симулятора совпадает с именем узла хоста, которое можно получить с помощью uname -n в командной строке.

В Swift 2:

var name = utsname()
uname(&name)
return withUnsafePointer(&name.nodename) {
    String.fromCString(UnsafePointer($0))!
}
0 голосов
/ 10 января 2011

Хм ... Я имею в виду симулятор / эмулятор, разве не логично, что все, что имитируется, абсолютно не подозревает, что оно симулируется?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...