Как встроить расширение для Mac в приложение Electron?

Я пытаюсь встроить расширение Finder Sync, написанное на Swift, в мое приложение, написанное на Electron. Как я могу заставить их работать вместе и общаться друг с другом? Я прочитал документацию Apple, но она только объясняет, как добавить цель в собственное приложение. Я также заметил, что я могу вручную ввести .appex скомпилированный файл (созданный XCode) в приложении Plugins папка с использованием электронного компоновщика. Как я могу разработать и протестировать расширение в XCode и правильно встроить его в пользовательское приложение Electron? Любое предложение?

Большое спасибо за любое предложение

2 ответа

Создайте папку PlugIns в вашей корневой папке Electron.

Скопируйте файл.appex в папку PlugIns.

Если вы используете электронный сборщик, измените файл package.json - добавьте: "extraFiles": ["PlugIns/"] в разделе "Mac".

Построить. Пакет содержимого вашего приложения будет содержать папку PlugIns и ваш файл приложения, и приложение будет загружено в процесс вашего приложения.

Как встроить расширение для Mac в приложение Electron?

Я бы скомпилировал его как независимый двоичный файл и включил бы его в какой-нибудь каталог для запуска из приложения электрона с помощью child_process.execFile

Вы можете использовать аргументы при выполнении двоичного файла с execFile, вот пример (с использованием обещания)

const util = require('util');
const execFile = util.promisify(require('child_process').execFile);
async function FinderSyncExtPlugin(ARGUMENTS) {
  const { stdout } = await execFile('YourBinary', ARGUMENTS);
  console.log(stdout);
}
FinderSyncExtPlugin(['argument1','argument2','...']);

Затем вы можете использовать стандартный вывод, чтобы узнать статус / результат запрошенной операции.

Другие вопросы по тегам