Подключение к изолированному приложению MacOS через гнездо DOMAIN из приложения без песочницы - PullRequest
1 голос
/ 14 апреля 2020

Я консультирую компанию, создающую кроссплатформенное приложение. Это кроссплатформенный проект WPF и Xamarin.Ma c. Менеджеры обычно склонны недооценивать сложность создания «порта» для Ма c. Я смотрел на другие ответы, но сценарий ios не совсем такой же.

Они создают приложение syn c, которое в некоторых отношениях похоже на DropBox и другие. Мы должны связать приложение Xamarin.Ma c (на основе. Net Core) с собственным MacOS «Finder Extension», которое должно работать в песочнице. . Net Core использует unix «доменный сокет» под капотом в реализации unix в качестве основного механизма связи, даже для реализации каналов. Это нормально для большинства вещей, но требует, чтобы виртуальный файл располагался в хорошо известном месте, чтобы к нему была доступна инфраструктура сокетов на обоих концах. Проблема состоит в том, что изолированное приложение (расширение поиска) не может получить доступ к этому файлу в каталоге вне своей песочницы, даже с правами чтения / записи по абсолютному пути. По-видимому, это право не позволяет размещать там виртуальный файл сокета. Все отлично работает в тестовой программе, которая НЕ находится в песочнице, поэтому мы считаем, что взаимодействие с. Net Core выполняется правильно. Я получаю сообщения об ошибках подключения IP C в системном журнале, когда мы просим изолированное приложение для доступа к сокету. И в противном случае операция молча проваливается. Обходной путь - использовать посредническое приложение без песочницы, которое связывается с. Net через сокет (работает нормально) и связывается с расширением поиска через систему уведомлений (также работает нормально). Прежде чем я go и сделал это, я подумал, что спросить, есть ли у какого-нибудь тела исправление, о котором я не знаю. Когда я решу это, я поделюсь здесь, конечно, если это что-то загадочное. Не уверен, что можно включить это в тот же вопрос, но у нас, похоже, проблемы с мониторингом состояния файлов в документах, изображениях, фильмах и других стандартных личных папках.

...