XCode:运行 -x86_64 在 macOS 上为 arm64 构建时的构建脚本

XCode: Running a build script in -x86_64 while building for arm64 on macOS

我正在将我的应用程序移动到 macOS12 Montery 上的 arm64。虽然用 arm64 重建它的框架到目前为止工作正常,但我有一些扩展脚本需要在打包到应用程序包之前从 JS 编译到 JSX。有一个 Visual Studio 代码插件为我做这件事(Extendscript 调试器)。

因此我用这个脚本添加了一个脚本阶段

node "$HOME/.vscode/extensions/adobe.extendscript-debug-1.1.2/public-scripts/exportToJSX.js" -f -n "$PROJECT_DIR/indesignagent/Javascript"

它在 -x86_64 上工作正常但在 arm64 上失败,因为插件本身尚未针对 arm64 进行优化,并且 XCode 似乎在 arm64 arch[= 上使用 /bin/sh 执行它17=]

我找到了我目前使用的手动解决方案,但它不如自动化过程令人满意: 我用 rosetta 模式打开终端并调用上面的命令,它成功了,然后我在没有脚本阶段的情况下构建我的应用程序。

我想知道:有什么方法可以用 -x86_64.

执行脚本 phase/bash 脚本

我已经在脚本阶段尝试过这里提到的解决方案:https://medium.com/swlh/run-x86-terminal-apps-like-homebrew-on-your-new-m1-mac-73bdc9b0f343

arch -x86_64 /bin/zsh -c "$(node ~/.vscode/extensions/adobe.extendscript-debug-1.1.2/public-scripts/exportToJSX.js -f -n ~/workfolder/myapp-arm/indesignagent/Javascript)"

我认为这行不通,因为 XCode 在这里 UI 中设置了解释器,我没有找到任何方法来为它添加上面链接解决方案中提到的体系结构的前缀

感谢任何帮助

我解决了。 节点是用 brew 安装的。从 macOS Monterey 开始,它安装在 /opt/ 文件夹中,该文件夹仅在 arch arm64 上运行。因此,我在运行 -x86_64 的 usr/local/bin 中手动安装了旧版本的节点 (< 14)。最后要做的是告诉脚本在哪里寻找节点并且它起作用了。 我可以在构建过程中调用 x86_64 脚本时为 arm64 构建一个应用程序(只要它们没有为 arm 更新。