当前位置: 首页 > 知识库问答 >
问题:

在Apple Silicon M1(链接库的libPods ProjectName)上进行本机反应。a'缺少此目标所需的一个或多个体系结构:x86_64

洪俊捷
2023-03-14

我正在尝试在MacBook Pro上为iOS模拟器构建一个带有M1架构的React原生项目。

该项目很好地建立在英特尔体系结构之上。

它还构建在设备上,并在M1上很好地存档。但不是在模拟器上。

切换到M1芯片组时,我犯了一个经典错误。

在/project folder/ios/Pods/OpenSSL Universal/ios/lib/libcrypto中。a(cryptlib.o),为iOS模拟器构建,但在为iOS构建的对象文件中链接,文件“/project folder/iOS/Pods/OpenSSL Universal/iOS/lib/libcrypto。用于arm64的“a”架构

我将arm64添加到排除的架构中。

我还添加了下面的代码片段,但没有它,它的反应也一样。

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

现在我有:

/project-folder/ios/ProjectName.xcodeproj链接库'libPods-ProjectName. a'缺少此目标所需的一个或多个架构:x86_64。

我试图将x86_64添加到项目的体系结构列表中,但没有结果。

我在Xcode IDE上构建。此错误消息适用于我尝试的所有iPhone:8、11、12和我尝试的所有目标:iOS 9、10和13。

共有3个答案

薛寒
2023-03-14

XCode 12.5打破了上述大部分答案。对于那些使用XCode 12.5和react-local 0.64.2的人,我写了一个小指南来让事情正常运转:

https://github.com/aiba/react-native-m1/blob/main/README.md

屈宏爽
2023-03-14

对我来说,在Rosetta模式下打开Xcode解决了问题。您可能还必须在以下位置删除DerivedData:/User/

您可以通过运行以下命令来安装Rosetta:softwareupdate--install Rosetta

也似乎OS提示你安装,如果试图打开一个应用程序,需要Rosetta:https://support.apple.com/en-us/HT211861

胡云瀚
2023-03-14

我也有同样的问题,最后我解决了。这些错误有两个主要原因:

>

  • arm64体系结构支持

    由于有效的体系结构构建设置已从Xcode 12中删除,在Xcode 12中打开的项目文件将在用户定义中自动生成一个Valid_ARCHS宏,该宏将使构建失败。

    我遵循本文中的所有步骤:https://medium.com/@khushwanttanwar/xcode-12-compilation-errors-while-running-with-ios-14-simulators-5731c91326e9

    最后一步是通过在项目文件夹中运行以下命令来更新所有POD:

    pod deintegrate
    pod update
    

    然后我从主项目和Pod项目中排除了模拟器架构的arm64

    清理项目(k)然后运行。

  •  类似资料:
    • 我一直在尝试将Zendesk添加到我的swift项目中,并一直在尝试遵循以下步骤: https://developer.zendesk.com/embeddables/docs/ios_support_sdk/sdk_add#使用cocoapods添加-the-sdk-white 我已经使用以下命令添加了pod: 并将其添加到我的项目的: 但是,当我尝试运行我的项目时,我得到了这个错误: 我一直在

    • 你好, 我有一个项目的web使用和本地使用和共享一些代码。 正在工作,但是如果我删除web版本正在工作的代码和库,则web版本在同一代码库中不工作。 我认为问题是在配置,我已经尝试了很多版本,但在鼻涕工作。 要让web启动我使用的服务器,请执行以下操作: 我的配置文件: 还有一些错误:

    • 我的Xcode工作区和Firebase项目配置为使用单个目标运行多个环境。环境有PROD、DEV、BETA和QA。虽然我能够看到firebase中所有四个环境的分析和性能数据,但我收到了一条针对开发、测试和QA环境的“上传缺少dSYM需要处理”错误消息。象征性的崩溃报告出现在PROD的预期中,但其他三个环境没有。我也已经设置“调试信息格式”为“dwarf与dSYM文件”附加是我的当前配置。 任何帮

    • 问题内容: 我有一个与第三方供应商VENDOR1的库X版本libfoo静态链接的应用程序。它还与来自第三方供应商VENDOR2的动态(共享)库libbar链接,该库静态链接了VENDOR1的libfoo版本Y。 因此libbar.so包含libfoo.a的Y版本,而我的可执行文件包含libfoo.x的X版本。libbar仅在内部使用libfoo,并且没有从我的应用程序传递到libbar的libfo

    • 我正在尝试在Visual Studio2017(Community Edition)中构建我的第一个F#Android项目。 使用F#-Android-Blank应用程序模板创建新项目后,Visual Studio中的“错误”窗口立即显示以下消息: project Foo缺少构建所需的Android SDK。双击此消息并按照提示进行安装。 在消息上双击多少都不会出现提示。 我找不到一个明显的下载A