在Xcode中构建Unity项目时,链接器命令失败,退出代码为1

里奥·理查德

我正在尝试构建使用Unity开发的iOS应用程序。该应用程序可作为apk或aab在Android上正常构建和运行。为iOS构建时,在Unity中没有任何错误,并且构建了Unity-iPhone.xcodeproj和Unity-iPhone.xcworkspace。我打开Unity-iPhone.xcworkspace并确保该应用程序的签名正确无误。但是,当尝试归档项目时,出现以下错误:

(这些错误在构建UnityFramework时出现并与之相关)

  • ld: warning: Could not find or use auto-linked library 'swiftCoreMIDI'
  • ld: symbol(s) not found for architecture armv7
  • clang: error: linker command failed with exit code 1
  • Undefined symbol: _swiftoverride_class_getSuperclass(swift::TargetMetadata<swift::InProcess> const*)
  • Undefined symbol: swift::swift51override_conformsToSwiftProtocol(swift::TargetMetadata<swift::InProcess> const*, swift::TargetProtocolDescriptor<swift::InProcess> const*, llvm::StringRef, swift::TargetProtocolConformanceDescriptor<swift::InProcess> const* (*)(swift::TargetMetadata<swift::InProcess> const*, swift::TargetProtocolDescriptor<swift::InProcess> const*, llvm::StringRef))

附加信息:

  • 我正在使用Unity 2019.3.6f1,并且确保进入iOS解析器设置,并选中“ Podfile Generation ”,“在编辑器中自动安装Cocoapod Tools ”和“ Use project settings ”为true,以及将Cocoapods Integration设置为“ Xcode工作区-将Cocoapods添加到Xcode工作区
  • 我还要确保打开Unity-iPhone.xcworkspace而不是Unity-iPhone.xcodeproj。
  • 我将Xcode 12.0.1与Swift 5.3和Im一起用于iOS 10.0
  • 我的cocoapod版本是1.8.4。

我尝试过的事情:

  • 在UnityFramework的构建阶段,将“ swiftCoreMIDI ”库添加Frameworks and Libraries列表和/或Link Binary With Libraries列表中。
  • DEAD_CODE_STRIPPING = NO添加到目标UnityFramework的构建设置。
  • 安装Xcode 5.0并从Xcode的工具链菜单中使用它进行构建。
  • 在Unity的播放器设置中,将体系结构设置为UniversalARM64ARMv7
  • 在Unity的构建选项中使用“ Symlink Unity库”
  • 将构建目标降低/增加到8.0 / 12.0
  • 还有我目前无法回忆的许多其他事情……(被困在这几天上)

这些尝试均未删除或更改错误。

据我了解,问题在于UnityFramework中的一个库正在尝试调用“ swiftCoreMIDI ”库中的某些函数,但无法访问它们。但是我无法弄清楚为什么将库添加到常规面板中的Frameworks and Libraries列表和/或UnityFramework的构建阶段中的Link Binary With Libraries列表并不能解决问题。

预先感谢您的任何想法或建议。

里奥·理查德

我终于找到了解决方案,该解决方案已链接到Xcode中的UnityFramework目标。我必须删除一些与构建无关的体系结构:i386和x86_64。另外,我更新了库搜索路径以包括$(SDKROOT)/ usr / lib / swift。

要自动执行这些操作,可以在Unity项目的PostProcessBuild文件中添加这些行:

var projPath = pathToBuiltProject + "/Unity-iPhone.xcodeproj/project.pbxproj";
var proj = new PBXProject();
proj.ReadFromFile(projPath);

// Update the Library Search Paths of the whole Xcode project
proj.AddBuildProperty(proj.ProjectGuid(), "LIBRARY_SEARCH_PATHS", "$(SDKROOT)/usr/lib/swift");

// Get the UnityFramework target and exclude the unwanted architectures
var unityFrameworkGuid = proj.TargetGuidByName("UnityFramework");
proj.SetBuildProperty(unityFrameworkGuid, "EXCLUDED_ARCHS", "i386");
proj.AddBuildProperty(unityFrameworkGuid, "EXCLUDED_ARCHS", "x86_64");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

链接器命令失败,退出代码为1-Xcode

Xcode 6:链接器命令失败,退出代码为1

Xcode链接器命令失败,退出代码为1 c ++

来自Unity的Xcode:“链接器命令失败,退出代码为1(使用-v查看调用)”

生成项目时出错:链接器命令失败,退出代码为1

XCODE-链接器命令失败,退出代码为1-自xcode更新以来

Xcode 中的错误“/clang:-1: 链接器命令失败,退出代码为 1(使用 -v 查看调用)”

叮当:错误:链接器命令失败,项目中的退出代码为1(使用-v查看调用)

链接器命令失败,退出代码为1(使用-v查看调用)-Xcode

clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)Xcode 10.2.1

链接器命令失败,退出代码为1-Xcode 7

链接器命令失败,退出代码为1(使用-v查看调用),Xcode 8,Swift 3

Xcode 10错误:链接器命令失败,退出代码为1

铛:错误:链接器命令失败,退出代码为1(Xcode 8.2.1)

Xcode 8.3存档错误:链接器命令失败,退出代码为1

Xcode 9.2:链接器命令失败,退出代码为1(使用-v查看调用)

XCode 7:链接器命令失败,退出代码为1(使用-v查看调用)

XCode:链接器命令失败,退出代码为 1(使用 -v 查看调用)。如何?

Xcode 10.0:链接器命令失败,退出代码为 1(使用 -v 查看调用)

Xcode 6:链接器命令再次失败,退出代码为1(使用-v查看调用)

链接器命令失败,退出代码为1-Firebase

C:链接器命令失败,退出代码为1

链接器命令失败,退出代码为1(重复的符号)

C的makefile?:链接器命令失败,退出代码为1

链接器命令失败,退出代码为1

Swift:错误:链接器命令失败,退出代码为1

iOS-当我创建NSManagedObject子类时->链接器命令失败,退出代码为1

(空):使用admob时,链接器命令失败,退出代码为1(使用-v查看调用)

通过CocoaPods使用Google Analytics(分析)时,“链接器命令失败,退出代码为1”