gpt4 book ai didi

xcode - 在通用架构项目上使用 -ObjC 链接器标志会导致 Mach-O 链接器错误?

转载 作者:行者123 更新时间:2023-12-04 08:42:59 24 4
gpt4 key购买 nike

以前,我可以毫无问题地构建和运行我的 Unity 输出 Xcode 项目。但现在苹果要求 iOS 应用程序支持 64 位,我被迫在 Unity 中做以下更改:

Build settings -> Player settings -> Other settings -> Scripting backend -> IL2CPP
Build settings -> Player settings -> Other settings -> Architecture -> Universal

现在的问题是我无法在我的设备上成功构建和运行我的 Xcode 项目。我收到这个 Apple Mach-O linker error我以前没有得到。

这是我从 Xcode 得到的错误:
ld: warning: directory not found for option '-F-F/Users/user/Desktop/qwer/Frameworks/Plugins/IOS'
ld: warning: directory not found for option '-F"/Users/user/Desktop/qwer/../../Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK"'
duplicate symbol l082 in:
/Users/user/Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK/VungleSDK.framework/VungleSDK(FMDatabase.o)
/Users/user/Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK/VungleSDK.framework/VungleSDK(VungleAdViewController.o)
duplicate symbol l084 in:
/Users/user/Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK/VungleSDK.framework/VungleSDK(VungleVideoPlayer.o)
/Users/user/Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK/VungleSDK.framework/VungleSDK(VungleAdViewController.o)
ld: 2 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

据我观察,似乎与 VungleSDK 有关。地点?这对我来说很奇怪,因为除了上面提到的之外,我没有做任何更改。

有谁知道如何解决这个问题?

另请注意:是否有人在切换到 IL2CPP 时遇到编译时间过慢的情况?和 Universal建筑学?我已经将我的 Xcode 版本切换到 Release (正如有人在网上建议的那样)它仍然是那样。我的代码编译需要很长时间。在我切换到 IL2CPP 和 Universal 之前只花了不到 10 秒的时间

更新:我需要提到我正在使用 Chartboost , AdColony , 和 Vungle在我的应用程序中。我做了一些实验,发现删除 -ObjC-fobjc-arc我的 Xcode 项目中的链接器标志修复了 Mach-O 链接器错误,我能够再次成功构建和运行。 warning: directory not found for option虽然我仍然在那里,但它仍然成功编译并运行,并且 Chartboost的所有功能|和 Vungle完全在我的应用程序中工作。

我首先拥有这些链接器标志,因为 AdColony SDK 需要它们。但是删除它们会使 AdColony 在我的应用程序中停止运行。所以这也不是一个干净的解决方案。

这让我相信两件事: AdColony unity 插件可能在支持 Universal/ARM64 架构或 -ObjC 方面存在问题链接器标志与构建到通用/ARM64 架构不兼容。

如果有人能对这个令人困惑的问题有所了解,我将不胜感激。

谢谢

最佳答案

我认为您的项目中引用了多个导入的 Vungle SDK。您所要做的就是删除其中之一。如果您认为其中一个较旧,另一个较新,并且不知道哪个是哪个,则将它们都删除,然后重新导入最新的 Vungle SDK。

另外,我从您发布的日志中发现了另一个可能的问题

ld: warning: directory not found for option '-F"/Users/user/Desktop/qwer/../../Documents/Unity Projects/Unity 5.0.0 projects/MyGame/Assets/Editor/Vungle/VungleSDK"'

您的 Vungle SDK 的路径似乎包含在您的“框架搜索路径”中的“”(倒逗号)中。检查您的路径,它应该如下面的引用图片所示。



注意路径 $(SRCROOT)/../../Assets/Editor/Vungle/VungleSDK不包含在 ""(倒逗号)中。

更新 1
当在框架搜索路径中未正确输入路径时,会发生大多数这些问题。就我而言,我有多个插件,不仅要检查框架搜索路径,还要检查标题搜索路径和库搜索路径。我的库搜索路径中也有 ""并删除了它们(删除 ""时要小心 - 一个错误的删除,你将不得不创建一个新的 xcode 项目)。我附上了我的其他搜索路径图片

标题搜索路径
enter image description here

图书馆搜索路径
enter image description here

关于xcode - 在通用架构项目上使用 -ObjC 链接器标志会导致 Mach-O 链接器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31206701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com