Xcode 12 问题 - 找不到目标 'arm64-apple-ios-simulator' 的模块 'FrameworkName';找到:x86_64-apple-ios-simulator、x86_64
Xcode 12 issue - Could not find module 'FrameworkName' for target 'arm64-apple-ios-simulator'; found: x86_64-apple-ios-simulator, x86_64
更新到 Xcode 12 后,项目在模拟器上构建时出现此错误:
Could not find module 'FrameworkName' for target 'arm64-apple-ios-simulator'; found: x86_64-apple-ios-simulator, x86_64
框架是用cocoapods安装的。
它与 Xcode 11 一起工作。在“任何 iOS 设备”或带有 Xcode 12 的真实 iPhone 上构建也可以正常工作。
Xcode 12 有什么不同?
您可以尝试删除应用的派生数据,然后清理并构建应用,您可以按照以下步骤操作link https://programmingwithswift.com/delete-derived-data-xcode/
我通过确保构建设置 VALID_ARCHS
(现在出现在 Xcode 12 中构建设置的底部)包含“x86_64
”来解决此问题。
即:
- 之前我有:
VALID_ARCHS = arm64, arm64e
- 修复后:
VALID_ARCHS = arm64, arm64e, x86_64
(有点违反直觉,因为错误消息说它找不到 arm64
-apple-ios-simulator 的模块,:shrug:)
您可以尝试为任何 iOS Simulator SDK 设置 $(ARCHS_STANDARD)
为 VALID_ARCHS
进行调试,为调试设置 YES
为 ONLY_ACTIVE_ARCH
。它对我有用。
当您修改项目以适应新的 M1 Macs,然后尝试 运行 英特尔 Mac 上的同一项目时,可能会出现这种情况。
它基本上尝试在 ARM 架构上 运行 并找到 X86_64。
要解决此问题,您只需将构建操作限制为仅活动 (X86_64) 架构。
您可以通过将“仅构建活动架构”设置为“是”来执行此操作。
我解决了这个问题,方法是在 app Target 和 test Target for Debug 中排除 arm64,如下图所示。
测试并处理 Xcode 13.
我们的图书馆应用程序出现此错误,这解决了我的问题:
关闭XCode
打开 Finder 应用并显示“应用程序”
右键单击图标 Xcode,然后单击“获取信息”(或类似内容)
有复选框“用 Rosseta 打开”(或类似的东西)。 Select它
运行 Xcode 再次尝试构建
在最新版本的 Xcode 中,(Xcode 13.2) VALID_ARCHS
的选项不再可用。所以我决定在 Xcode 中将测试设备从模拟器切换到物理设备。当 运行 在测试设备
上时,我没有遇到问题
对于基于 M1 芯片的 Mac 按照以下说明进行操作..
Applications > Xcode > Get Info> checked "Open using Rosetta"
就是这样,你可以开始了。
在 Xcode 13.3.1,Apple M1 Pro
中测试
更新到 Xcode 12 后,项目在模拟器上构建时出现此错误:
Could not find module 'FrameworkName' for target 'arm64-apple-ios-simulator'; found: x86_64-apple-ios-simulator, x86_64
框架是用cocoapods安装的。 它与 Xcode 11 一起工作。在“任何 iOS 设备”或带有 Xcode 12 的真实 iPhone 上构建也可以正常工作。 Xcode 12 有什么不同?
您可以尝试删除应用的派生数据,然后清理并构建应用,您可以按照以下步骤操作link https://programmingwithswift.com/delete-derived-data-xcode/
我通过确保构建设置 VALID_ARCHS
(现在出现在 Xcode 12 中构建设置的底部)包含“x86_64
”来解决此问题。
即:
- 之前我有:
VALID_ARCHS = arm64, arm64e
- 修复后:
VALID_ARCHS = arm64, arm64e, x86_64
(有点违反直觉,因为错误消息说它找不到 arm64
-apple-ios-simulator 的模块,:shrug:)
您可以尝试为任何 iOS Simulator SDK 设置 $(ARCHS_STANDARD)
为 VALID_ARCHS
进行调试,为调试设置 YES
为 ONLY_ACTIVE_ARCH
。它对我有用。
当您修改项目以适应新的 M1 Macs,然后尝试 运行 英特尔 Mac 上的同一项目时,可能会出现这种情况。
它基本上尝试在 ARM 架构上 运行 并找到 X86_64。
要解决此问题,您只需将构建操作限制为仅活动 (X86_64) 架构。
您可以通过将“仅构建活动架构”设置为“是”来执行此操作。
我解决了这个问题,方法是在 app Target 和 test Target for Debug 中排除 arm64,如下图所示。
测试并处理 Xcode 13.
我们的图书馆应用程序出现此错误,这解决了我的问题:
关闭XCode
打开 Finder 应用并显示“应用程序”
右键单击图标 Xcode,然后单击“获取信息”(或类似内容)
有复选框“用 Rosseta 打开”(或类似的东西)。 Select它
运行 Xcode 再次尝试构建
在最新版本的 Xcode 中,(Xcode 13.2) VALID_ARCHS
的选项不再可用。所以我决定在 Xcode 中将测试设备从模拟器切换到物理设备。当 运行 在测试设备
对于基于 M1 芯片的 Mac 按照以下说明进行操作..
Applications > Xcode > Get Info> checked "Open using Rosetta"
就是这样,你可以开始了。
在 Xcode 13.3.1,Apple M1 Pro
中测试