升级到Xcode 12后出现问题:ld:为iOS Simulator构建,但链接到为iOS构建、架构为arm64的dylib。

24
我将Xcode升级到Xcode 12并编译我的项目。首先,出现了以下错误: ld: 正在为 iOS 模拟器构建,但链接的 dylib 是为 iOS 构建的,文件 '/Users/ethanli/Documents/Aspira/RA.com4iOS/RA.com4iOS/source/ReserveAmerica/ReserveAmerica4/External/Mapbox/MapboxMobileEvents.framework/MapboxMobileEvents' 适用于架构 arm64
通过在“生成设置”中添加“arm64”到“排除架构”中来解决此错误。参考https://developer.apple.com/forums/thread/656509
像这样进行配置:配置如图所示 但是...另一个错误出现了:
错误:无法找到构建输入文件:'/Users/ethanli/Library/Developer/Xcode/DerivedData/ReserveAmerica4-cgnruuknmgycgrbadguodtkwspmy/Build/Products/DEBUG-iphonesimulator/ReserveAmerica4.app/ReserveAmerica4'(在项目'ReserveAmerica4'的目标中)
我在Finder中找到了这个路径,“ReserveAmerica4” 确实不存在。有没有办法解决这个问题呢?
5个回答

24

谢谢Ethan! 我已经尝试了很多天来弄清楚这个问题。 - Craig1123
1
这似乎对模拟器有效。但是,当我尝试为任何iOS设备进行存档构建时,仍然会出现相同的错误:( - Craig1123
@Craig1123 这个错误与架构有关,你可以把错误展示给我看看。 - Ethan Li
我在 https://dev59.com/blIG5IYBdhLWcg3wkBsx 上发布了一个新帖子,其中包含我的错误信息。 - Craig1123
1
那些使用Xcode 12的人,这个答案可以救命。 - Torongo
它也适用于Xcode 13 Beta 4。谢谢! - Den

12

你可以用以下方法在Flutter中修复它

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end

1
太棒了!这解决了我在Flutter项目中的问题! - Alexey
4
解决架构问题,但引发另一个问题“找不到模块xxx”。苹果m1芯片、Xcode 13.1版本和Flutter 2.5.3版本。 - David
1
我也会解答如何修复“找不到模块”错误 :) - gtr Developer

12
我在使用M1芯片的时候遇到了同样的错误。但是添加“arm64”到“排除 + 仅构建活动架构”并没有帮助,因为一个库出现了“要在模拟器中运行构建,应将其设置为"x64"”错误。 对我有效的临时解决方案是:
  • 在Finder中右键单击Xcode应用程序;
  • 选择“获取信息”;
  • 设置“使用Rosetta”复选框;
  • 重新打开Xcode / 清洁 / 重建;

应用程序信息


2
  1. 在pod文件中注释Firebase相关内容(你可能需要对程序代码进行注释),pod文件示例:

enter image description here

  1. 退出Xcode
  2. 运行“pod install”命令
  3. 重新启动Xcode并构建项目
  4. 取消注释Firebase相关的pod文件
  5. 退出Xcode
  6. 再次运行“pod install”命令
  7. 重新启动Xcode并构建项目

尝试更新Pod、删除并重新安装Pod,但都没有起作用。但是这个解决方法完美地解决了问题,谢谢! - Peter

1

在执行了一些操作,例如安装pods之后,我删除了之前的项目并重新克隆了一份,这对我起到了作用。


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