迁移到新版 Xcode 后出现错误
Resolve errors caused by migrating to a new Xcode version.
阅读时间2 分钟最后更新于 10 个月前
症状
从旧版 Xcode 迁移到新版本后出现错误。以下是 UBA/Xcode 日志中表明存在此问题的常见错误消息和警告:
- 编译器因符号未找到而失败:
-
ld: symbol(s) not found for architecture arm64clang: error: linker command failed with exit code 1 (use -v to see invocation)
-
- iOS 部署目标版本不受支持:
-
warning: The iOS deployment target 'IPHONEOSDEPLOYMENTTARGET' is set to 10.0, but the range of supported deployment target versions is 11.0 to 16.1.99
-
- 签名需要未选中的开发团队:
-
error: Signing for "gRPC-C++-gRPCCertificates-Cpp" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'gRPC-C++-gRPCCertificates-Cpp' from project 'Pods')
-
原因
在更改 Xcode 版本时,如果某些组件、包或插件与新版本的 Xcode 不兼容,通常会出现这些错误。
解决方案
首先,确保能够在批处理模式下使用代码仓库的全新克隆版本(无本地缓存库)进行本地构建,并且在构建 Xcode 项目时,除了在 Build Automation 目标中所做的更改之外,无需进行任何其他更改。
在批处理模式下成功进行本地构建后,确保本地使用的 版本与 Build Automation 中使用的版本相匹配。如果版本不匹配,请使用以下构建前脚本来安装正确的版本。以下示例适用于 1.12.0 版本:
cocoapodscocoapodsgem install cocoapods -v 1.12.0echo "current cocoapods version: "gem which cocoapods

要检查本地的 版本,请在终端中使用以下命令:
cocoapodspod --version
您可以将 固定到特定版本,以确保所有构建中使用的版本保持一致。您可以使用外部工具(例如 External Dependency Manager for Unity)来执行此操作,也可以直接编辑 文件。使用此工具时,如果指定精确版本(例如 )而不是表达式(例如 ,表示使用大于 7.0 的任何版本),则可以保证依赖包版本不会改变,避免引入任何新的错误。
cocoapodsDependencies.xml7.0.0~> 7.0如果问题仍未解决,请提交支持工单,以便支持团队可以进一步调查。要从 Unity Dashboard 提交工单,请打开 DevOps,然后选择 Help & Support(帮助与支持)> Ticket(工单)> File a ticket(提交工单)。