Могу ли я использовать Peertalk или usbmuxd в изолированном приложении macOS?

Peertalk - это библиотека, которая обеспечивает связь между Mac и устройством iOS через молнию. /USB-кабель. Он устанавливает соединение следующим образом:

  struct sockaddr_un addr;
  addr.sun_family = AF_UNIX;
  strcpy(addr.sun_path, "/var/run/usbmuxd");
  socklen_t socklen = sizeof(addr);
  if (connect(fd, (struct sockaddr*)&addr, socklen) == -1) {
    if (error) *error = [[NSError alloc] initWithDomain:NSPOSIXErrorDomain code:errno userInfo:nil];
    return NO;
  }

Это нормально для приложений без песочницы. В изолированном приложении, даже если сеть и USB разрешены, происходит сбой с ошибкой EPERM - операция не разрешена.

Есть ли способ заставить это работать в изолированном приложении Mac?


ОБНОВИТЬ:

Добавление временного исключения в .entitlements не помогло:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.network.client</key>
    <true/>
    <key>com.apple.security.network.server</key>
    <true/>
    <key>com.apple.security.temporary-exception.files.absolute-path.read-write</key>
    <string>/var/run/usbmuxd</string>
</dict>
</plist>

person DavidA    schedule 06.12.2016    source источник
comment
Разве вместо этого путь должен быть / private / var / run / usbmuxd?   -  person superg    schedule 16.12.2016
comment
@superg То же самое - файловая система / private содержит ссылки на файлы в корневой файловой системе.   -  person DavidA    schedule 20.12.2016
comment
Привет ... Вы получили какие-нибудь ответы по этому поводу? Мы также пытаемся заставить PeerTalk работать с песочницей для MacOS. Спасибо, что поделился! Ваше здоровье   -  person Enrique R.    schedule 10.03.2017
comment
Я сделал это с помощью релейного приложения без песочницы, которое пользователь мог загрузить и установить вне магазина приложений.   -  person DavidA    schedule 13.03.2017
comment
Есть ли способ отправить или загрузить из магазина приложений? Пожалуйста, предложите.   -  person Mitesh Khatri    schedule 29.06.2017


Ответы (1)


Нет, это невозможно.

Решение, к которому я в конечном итоге пришел, было приложение-ретранслятор, которое пользователь мог вручную загрузить и установить как приложение без песочницы. Основное приложение связывается с реле через сетевой адрес обратной связи, затем реле связывается с устройством через usbmuxd.

person DavidA    schedule 13.03.2017