我正在尝试在我用Electron编写的应用程序中嵌入一个用 Swift 编写的Finder Sync 扩展。我怎样才能设法让它们一起工作并相互交流?我已阅读 Apple文档,但它仅说明了如何将目标添加到本机应用程序。我还注意到我可以使用electron builder在应用程序文件夹中手动注入编译文件(由 XCode 生成)。如何在 XCode 中开发和测试扩展并将其正确嵌入到自定义 Electron 应用程序中?有什么建议吗?.appex
Plugins
非常感谢您的任何建议
我正在尝试在我用Electron编写的应用程序中嵌入一个用 Swift 编写的Finder Sync 扩展。我怎样才能设法让它们一起工作并相互交流?我已阅读 Apple文档,但它仅说明了如何将目标添加到本机应用程序。我还注意到我可以使用electron builder在应用程序文件夹中手动注入编译文件(由 XCode 生成)。如何在 XCode 中开发和测试扩展并将其正确嵌入到自定义 Electron 应用程序中?有什么建议吗?.appex
Plugins
非常感谢您的任何建议
在您的 Electron 根文件夹中创建PlugIns文件夹。
将.appex文件复制到 PlugIns 文件夹中。
如果您使用的是 electron-builder,请修改package.json文件 -
"extraFiles": ["PlugIns/"]
在“mac”部分添加:
建造。您的应用程序包的内容将包含 PlugIns 文件夹和您的 appex 文件,并且 appex 将被加载到您的应用程序的进程中。
如何在 Electron 应用程序中嵌入 mac 应用程序扩展?
我会将其编译为独立的二进制文件,并将其包含在某个目录中,以便使用child_process.execFile从电子应用程序执行
使用 execFile 执行二进制文件时可以使用参数,这是一个示例(使用 promise)
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','...']);
然后,您可以使用标准输出来了解所请求操作的状态/结果。