【问题标题】:XCode: Running a build script in -x86_64 while building for arm64 on macOSXCode:在 macOS 上为 arm64 构建时在 -x86_64 中运行构建脚本
【发布时间】:2021-12-29 12:13:55
【问题描述】:

我正在将我的应用程序移至 macOS12 Montery 上的 arm64。到目前为止,虽然使用 arm64 重建其框架工作正常,但我在其中有一些扩展脚本,需要在将其打包到应用程序包之前从 JS 编译为 JSX。有一个 Visual Studio Code 插件为我做这件事(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 架构上使用 /bin/sh 执行它

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

我想知道:有什么方法可以使用 -x86_64 执行脚本阶段/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/mydatamerge-arm/indesignagent/Javascript)"

我认为这行不通,因为 XCode 在这里在 UI 中设置了解释器,我没有找到任何方法将它与上述链接解决方案中提到的架构作为前缀

任何帮助表示赞赏

【问题讨论】:

  • 你不能直接用arch -x86_64 执行节点吗?
  • 这正是我已经尝试过的......行不通

标签: xcode bash macos build arm64


【解决方案1】:

我解决了。 Node 是用 brew 安装的。从 macOS Monterey 开始,它安装在 /opt/ 文件夹中,该文件夹仅在 arch arm64 上运行。所以我在运行 -x86_64 的 usr/local/bin 中手动安装了旧版本的节点(

【讨论】:

    猜你喜欢
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2022-08-24
    • 2015-03-18
    • 2020-09-04
    • 2022-06-23
    • 1970-01-01
    相关资源
    最近更新 更多