在 Xcode 中为 iOS 模拟器构建,但链接了针对 iOS 构建的对象文件。

12

系统规格: Mac-in-cloud(v 12.3.1)8 GB。 XCODE 13.4

几个月前我们在 mac-in-cloud 上用 Xcode 创建了一个项目,它一直运行良好,并将其推送到 git,接着又租了另一台 mac-in-cloud 进行测试,项目仍然能正常运行。

现在我们的应用程序出现了一个 bug,因此我们租了另一台 mac-in-cloud,拉取代码并试图运行它,但出现了以下错误:

Building for iOS Simulator, but linking in object file built for iOS, file '/Users/user220716/Desktop/Project/[project_name]/platforms/ios/Pods/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/GoogleMaps' for architecture arm64

我尝试了许多类似问题的解决方案,甚至包括一些相同的问题,比如 thisthis。但问题并未解决。

提前感谢您的帮助。

3个回答

17
你问题中的第二个链接应该就是你遇到的同样问题。解决方案基本上是将 arm64 添加到 Excluded Architecture 中即可。

enter image description here


1
不确定为什么Xcode允许将此行编辑为字符串,你不应该这样做,双击以获取弹出窗口。 - MikeL

4

在搜索了一个小时后,以下解决方案对我有效: 输入图像描述

如果上面的方法不起作用,请尝试这个方法,它对我有效: 前往Finder -> 应用程序 -> Xcode(右键单击Xcode,获取信息并选中使用Rosetta打开选项),然后再次打开Xcode 输入图像描述


它对我不起作用。 - phuocantd
phuocantd,请尝试按照我在第二张图片中描述的方式进行操作,这对我有效。 - Zain Ahmed
我在 Podfile 中添加了以下代码:installer.pods_project.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" end这对我有效果。 - phuocantd
3
它对我有效,但是为什么呢?我的意思是,iPhone上的iOS和M1 Mac上的模拟器都运行在相同的架构(arm64)上,对吧?为什么我应该在模拟器构建中排除arm64?M1 Mac上的XCode是否使用x64架构运行模拟器? - Jose Flavio Quispe Irrazábal

3
这是一个老问题,但我在从基于英特尔的 Mac 迁移到基于 M2 的 Mac 时遇到了它。
虽然有很多类似问题,例如this one,但大多数似乎与在支持 Apple Silicon 的 Xcode 版本上运行的基于英特尔的 Mac 相关。
这个特定的问题提到了 GoogleMaps,这也是我遇到问题的同一个库。在我的研究中,我发现了this issue在 GoogleMaps 上开放的问题,解释了问题以及一些可能的解决方案,对我来说需要手动安装该库。

enter image description here

我只需要简单地更改我的Podfile文件,将GoogleMaps的版本更改为8,就解决了我的问题。
pod 'GoogleMaps', '~>8.0'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接