uni-app Mac电脑上打包报错 [Error] /bin/bash: @Win: command not found

发布于 1周前 作者 yuanlaile 来自 Uni-App

uni-app Mac电脑上打包报错 [Error] /bin/bash: @Win: command not found

开发环境 版本号 项目创建方式
Mac 14.1.2 HBuilderX

操作步骤:

  • 云打包

预期结果:

  • 正常打包完成

实际结果:

  • 异常报错停止

bug描述:

  • IOS云打包报错:
[Info] begin copyFile files to ipa...
[Info] begin replace files to ipa...
[Info] begin update mobileprovision to ipa...
[Info] begin outPut t_entitlements_full plist file...
[Info] begin outPut outPutEntitlements plist file...
[Info] begin verifyPlistFiles
[Info] begin update files to ipa...
[Info] begin createKeychain...
[Info] begin unlockKeychain...
[Info] begin setListKeychains...
[Info] begin importAppleCerts...
[Info] 1 certificate imported.
[Info] 1 certificate imported.
[Info] begin importSecurity...
[Error] /bin/bash: [@Win](/user/Win): command not found
[Error] importSecurity failed
[Info] Package make result:Failed.    Reason:

4 回复

打开操作系统终端命令行,随便输入一个shell命令,比如输入ls,是否正常?


ls命令之类都是正常的。

刚用HBuilderX3.99新版本升级打包试了下,普通打包是可以的。快速安心打包,还是会有一样的报错。

在 uni-app 开发中,如果你在 Mac 电脑上打包时遇到 [Error] /bin/bash: @Win: command not found 的错误,通常是因为在打包过程中使用了 Windows 特定的命令或路径,而这些命令在 macOS 上无法识别。

以下是一些可能的解决方案:

1. 检查 package.json 脚本

确保 package.json 文件中的脚本命令是跨平台的。例如,如果你在 scripts 部分使用了 Windows 特定的命令(如 @Win),请将其替换为适用于 macOS 的命令。

{
  "scripts": {
    "build": "cross-env NODE_ENV=production uni-build"
  }
}

2. 使用 cross-env 跨平台环境变量

如果你在脚本中使用了环境变量,建议使用 cross-env 来确保跨平台兼容性。

首先,安装 cross-env

npm install cross-env --save-dev

然后在 package.json 中使用 cross-env

{
  "scripts": {
    "build": "cross-env NODE_ENV=production uni-build"
  }
}

3. 检查 HBuilderX 配置

如果你使用的是 HBuilderX 进行打包,确保你的项目配置没有包含 Windows 特定的路径或命令。检查 manifest.json 和其他配置文件,确保它们适用于 macOS。

4. 检查自定义脚本

如果你在项目中使用了自定义的脚本文件(如 .sh.bat 文件),请确保这些脚本在 macOS 上也能正常运行。特别是 .bat 文件是 Windows 批处理文件,在 macOS 上无法直接运行,可能需要将其转换为 .sh 文件。

5. 清理缓存并重新安装依赖

有时候,缓存或依赖问题也可能导致打包失败。尝试清理缓存并重新安装依赖:

rm -rf node_modules
rm -rf package-lock.json
npm cache clean --force
npm install

6. 检查环境变量

确保你的环境变量设置正确,特别是与打包相关的路径和命令。你可以在终端中运行 echo $PATH 来检查环境变量是否正确配置。

7. 使用 Docker 或虚拟机

如果你必须在 macOS 上运行 Windows 特定的命令,可以考虑使用 Docker 或虚拟机来创建一个 Windows 环境进行打包。

8. 检查 uni-app 版本

确保你使用的 uni-app 版本是最新的,或者至少是稳定的版本。有时候,旧版本可能存在一些跨平台的兼容性问题。

9. 查看详细日志

如果以上方法都无法解决问题,可以尝试查看更详细的日志信息,以确定具体的错误原因。你可以在终端中运行打包命令时添加 --verbose 参数来获取更多信息。

npm run build --verbose
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!