macOS Sonoma(14.0)下.sh脚本编译.framework报错求助
解决macOS Sonoma下编译.framework脚本失效的问题
报错核心原因
- 路径含未转义空格:从报错路径里的
*** **.framework能看出,你的framework名称或路径存在空格,Sonoma下编译工具对空格的处理逻辑更严格,未转义的空格会直接导致路径解析失败。 - 路径映射不统一:报错里二进制文件路径是
/private/var/...,但framework路径是/var/...,Sonoma后系统不再自动处理临时目录的这种路径映射差异,导致工具无法识别二者属于同一目录。
具体修复步骤
- 转义路径空格:脚本中所有涉及路径的位置,给带空格的路径加上双引号包裹,或者用反斜杠转义空格。比如把
*** **.framework改成"*** **.framework"或***\ **.framework。 - 统一路径格式:在脚本里统一使用完整私有路径(
/private/var/...)或常规路径(/var/...),不要混合使用。可以用realpath命令标准化路径,示例:FRAMEWORK_PATH=$(realpath "/var/folders/xh/******/T/****.iOS.xcarchive/Products/Library/Frameworks/*** **.framework") BINARY_PATH="$FRAMEWORK_PATH/*****" - 更新Xcode命令行工具:升级Sonoma后,执行
xcode-select --install重新安装适配Sonoma的命令行工具,避免版本不兼容问题。 - 修正路径拼接逻辑:如果脚本里有手动拼接路径的代码,改用变量拼接并全程用双引号包裹,避免路径断裂。示例:
# 错误写法 xcodebuild ... $FRAMEWORK_PATH/$BINARY_NAME # 正确写法 xcodebuild ... "$FRAMEWORK_PATH/$BINARY_NAME"
内容的提问来源于stack exchange,提问作者DandanCW
相关产品推荐
相关产品推荐

