找不到目标'x86_64-apple-ios-simulator'的模块

Ole*_*hko 8 xcode ios swift xcode11

我有我的自定义框架,并且可以在XCode 10中正常工作。我在XCode 11 beta 3中对其进行了重建,然后将其集成到应用程序中,并出现以下错误:

找不到目标“ x86_64-apple-ios-simulator”的模块“ MyCustomFramework”;找到:arm64,arm64-apple-ios

我必须在框架项目的“有效架构”中进行一些更改吗?

小智 38

Swift 5.0-5.1, Xcode 11
打开 Xcode,<your project>,Build Settings,Build Active Architecture Only 并更改为 <NO> 进行调试和发布。架构在标准架构 -$(ARCHS_STANDARD) 中设置/离开,重要的是下一步:
有效架构:armv7、armv7s、arm64、arm64e,在此处添加 x86_64,如果您需要添加 i386 进行调试和发布。(字符串:armv7、armv7s、arm64、arm64e、x86_64)

在您的模拟器列表中选择任何模拟器并构建它。完毕。 

我希望它对你有用。


架构描述:

armv64:iPhoneX、iPhone 5s-8、iPad Air — iPad Pro

armv7:iPhone3Gs-5c,iPad WIFI(第四代)

armv6 : iPhone — iPhone3G

-以上如果是真实设备

i386 : 32 位模拟器

x86_64:64 位模拟器

  • Swift 12 中的有效架构已被删除 (9认同)
  • 我添加了 x86_64 但仍然收到相同的错误“无法找到目标‘x86_64-apple-ios-simulator’的模块” (8认同)
  • 我按照你的步骤操作...我在我的 SDK 和项目中添加了 `x86_64` 和 `x86_64-ios-simulator` ,但没有用,我收到了这个错误。`无法找到目标 'x86_64-apple' 的模块 'BlazeSdk' -ios模拟器'; 找到:arm64、arm64-apple-ios`。如何在 Xcode 12.2 中解决此错误?我想在 iPad 模拟器中运行。 (5认同)
  • 抱歉,什么是“set/leave”,我必须删除“Standard Architecture -$(ARCHS_STANDART)”吗?谢谢 (3认同)
  • 我应该如何为通过 swift 包管理器添加到项目的包设置 VALID_ARCHS 设置? (3认同)
  • @MichaelMontalbano,我能够添加 VALID_ARCHS 作为用户定义的设置并将其设置为等于以下内容,并且它在 sim 和设备上对我有用: `$(ARCHS_STANDARD) x86_64 i386 ` (2认同)

gng*_*zrd 27

这就是我在 Podfile 中所需的全部内容:

post_install do |pi|
  pi.pods_project.targets.each do |t|
    t.build_configurations.each do |config|
      config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)


Ash*_*kad 23

我添加了两个架构 i386 和 x86_64。并将 Yes 设置为“仅构建活动架构”。它适用于我在每个模拟器设备上构建。

在此处输入图片说明

对于 XCode-12,有效架构已移至最底部的 User-Defined 选项下作为 VALID_ARCHS

  • 在 Xcode 12 中,VALID_ARCHS 在用户定义设置下可用 (8认同)
  • VALID_ARCHS 是 xcode 12 中唯一对我有用的东西。可以通过单击项目目标构建设置选项卡中副标题栏中的 + 图标来进行用户定义设置。这花了太长时间才破解,谢谢你们救了我的命! (4认同)
  • 我已经面临这个问题好几天了,但是添加这些架构解决了问题。 (3认同)
  • 尽管允许我按照自己的意愿在模拟器上测试发布版本,但不幸的是,此修复使我的 ipa 无法下载,并且在某些情况下无法从 Test Flight 安装,尽管其上传成功。我需要一个非常快速的解决方案,所以我只是恢复了 `project.pbxproj` 中的更改,下一个 ipa 又按预期工作了。我没有时间进行更深入的测试,看看到底是什么部分导致了问题 (2认同)

Dha*_*ani 12

对于配备 M1、XCode 14.3 的 Macbook,在我将目标架构更改为“显示 Rossetta 目标”后,它起作用了

产品 -> 目的地 -> 目的地建筑 -> 显示 Rossetta Architectures

在此输入图像描述

可能这是黑客行为。希望这有助于快速解决这个问题。


Bob*_*oss 10

我在 M1 MacBook 上遇到了这个问题。

为了解决这个问题,我在我的主机应用程序 Podfile 中添加了以下几行:

post_install do |installer_representation|
    installer_representation.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
            config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

编辑:添加这一行也有助于解决运行时问题:

config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
Run Code Online (Sandbox Code Playgroud)


M A*_*eed 10

对于带有 M1 芯片的 Mac 上的所有 Pod,您需要x86_64-apple-ios-simulator在“构建设置”中添加支持Architectures。所以过程将是这样的:

  1. 转到 Pods,选择错误目标并添加x86_64-apple-ios-simulator到其中。在此输入图像描述

  2. 在 Pod 特定目标中设置Build Active Architectures否。

在此输入图像描述

它将解决这个问题。更多在项目设置中。您可以 Build Active Architectures根据您的要求进行设置。

  • 我按照你的步骤操作...我在我的 SDK 和项目中添加了 `x86_64` 和 `x86_64-ios-simulator` ,但没有用,我收到了这个错误。`无法找到目标 'x86_64-apple' 的模块 'BlazeSdk' -ios模拟器'; 找到:arm64、arm64-apple-ios`。如何在 Xcode 12.2 中解决此错误?我想在 iPad 模拟器中运行。 (3认同)
  • 对于使用 SPM 构建的包,我们如何解决这个问题? (3认同)

Was*_*man 10

此时我使用的是xcode 12.5

为此,我在最底部使用 VALID_ARCHS 编辑了用户定义选项

选择目标并进入构建设置

单击加号图标,您将看到

在此输入图像描述

添加VALID_ARCHS和 $(ARCHS_STANDARD) 值

或者您可以使用 -> armv7、armv7s、arm64、arm64e、x86_64、i386

在此输入图像描述

  • 我按照你的步骤操作...我在我的 SDK 和项目中添加了 `x86_64` 和 `x86_64-ios-simulator` ,但没有用,我收到了这个错误。`无法找到目标 'x86_64-apple' 的模块 'BlazeSdk' -ios模拟器'; 找到:arm64、arm64-apple-ios`。如何在 Xcode 12.2 中解决此错误?我想在 iPad 模拟器中运行。 (7认同)

Sid*_*ria 9

对于带有 Xcode 12 的新 M1 Mac,我遇到了同样的问题。我能够通过在构建设置中设置Build Active Architecture Only = 'Yes'和添加VALID_ARCHS = arm64 armv7 arm64-ios-simulator(本质上排除x86_64和架构)来解决它。x86_64-ios-simulator

  • 我按照你的步骤操作...我在我的 SDK 和项目中添加了 `x86_64` 和 `x86_64-ios-simulator` ,但没有用,我收到了这个错误。`无法找到目标 'x86_64-apple' 的模块 'BlazeSdk' -ios模拟器'; 找到:arm64、arm64-apple-ios`。如何在 Xcode 12.2 中解决此错误?我想在 iPad 模拟器中运行。 (3认同)
  • 这对我有用。在我的项目中,我通过 CocoaPods 使用“GoogleMaps-SDK”,这迫使我将“排除的架构”设置为“任何 iOS 模拟器 SDK:arm64”(以便能够在模拟器中运行该项目),这又是我的另一个库通过 SPM 使用不喜欢。 (2认同)

emr*_*tci 8

请检查您Scheme是否确保运行正确的方案。

然后你应该打开XCode > -Your Main Target- > Build Active Architecture Only并设置“NO”以在所有架构上构建。

选项:

YES - 如果设置为 yes,则 Xcode 将检测连接的设备,并确定架构,并仅在该架构上进行构建。

NO - 如果设置为 no,那么它将建立在所有架构上。

  • 这并不能解决框架是否最初是在没有 x86 架构的情况下构建的问题。尝试使用模拟器构建时仍然会抛出错误。 (3认同)

wil*_*ess 6

为了解决这个问题,我不得不再次使用xcode 11工具创建一个自定义框架的胖库。

为此,我执行了以下操作:

1)YourCustomFramework为iOS模拟器构建目标,并从桌面上的products文件夹中提取框架。

Xcode??衍生数据 ?您的项目 ?建立??产品??发行版iPhone模拟器

2)构建YourCustomFramework通用iOS设备的目标,并从桌面上的products文件夹中提取框架。

Xcode??衍生数据 ?您的项目 ?建立??产品??释放iphoneos?

3)重命名模拟器生成的框架,YourCustomFramework-sim.framework以便以后可以区分。

4)使用lipo命令将两个二进制文件合并为一个胖二进制文件。(光盘到您的桌面或自定义框架文件所在的位置)

$lipo -create ./YourCustomFramework-sim.framework/YourCustomFramework ./YourCustomFramework.framework/YourCustomFramework -output ./YourCustomFramework
Run Code Online (Sandbox Code Playgroud)

5)复制YourCustomFramework在上述步骤中创建的二进制文件,并将其替换为YourCustomFramework.framework文件夹中的二进制文件。

6)从资料夹

YourCustomFramework-sim.framework/Modules/YourCustomFramework.swiftmodule/
Run Code Online (Sandbox Code Playgroud)

复制所有模块并将其粘贴到

YourCustomFramework.framework/Modules/YourCustomFramework.swiftmodule/
Run Code Online (Sandbox Code Playgroud)

这应该可以解决您的问题。


小智 6

在此处输入图片说明

这是因为您的所有库都不能灵活使用 m1 芯片。所以右键单击 xcode,获取信息并勾选以 rosetta 身份打开。打开您的项目,清理并构建。最后,像以前一样运行你的项目:D

  • 这是一个 hack,而不是一个解决方案 (58认同)
  • 如果您从事大型项目,您的个人环境不应影响项目配置,那么这是一个解决方案,而项目配置可能不太灵活和敏捷。 (6认同)
  • 如果这是从 m1 芯片 macbook 上的第三方库获取的答案 (4认同)
  • 无论是否hacky,在有两个库无法找到一致的架构解决方案之后..我很高兴能够用这个来完成我的工作。 (4认同)
  • 我认为这应该是最可接受的答案,因为根本问题来自于 m1 无法编译的框架。要解决此问题,请使其可针对 m1 进行编译。要运行它,请以 Rosetta 形式打开! (2认同)

Jun*_*Lee 5

该错误意味着您的自定义框架已针对任何 ios 设备(实际设备)构建,并且您正在尝试在正在测试您的应用程序的模拟器上使用此自定义框架。
解决方案非常简单。只需为您想要测试的模拟器(例如 Iphone 13 模拟器)而不是“任何 iOS 设备”重建您的自定义框架。并用新编译的框架替换旧的框架。