【问题标题】:YogaKit.modulemap not found after running the IOS Simulator运行 IOS 模拟器后未找到 YogaKit.modulemap
【发布时间】:2020-11-25 09:24:33
【问题描述】:

我在 XCode 中运行 IOS 模拟器时遇到问题,每次尝试运行模拟器时,都会收到一条错误消息:

"fatal error: module map file '/Users/maurice/Library/Developer/Xcode/DerivedData/feedIt-etmfdpwrwadziocunpypqhkwucsd/Build/Products/Debug-iphonesimulator/YogaKit/YogaKit.modulemap' not found"

预期行为: XCode 运行模拟器。

实际行为: 构建失败,我收到描述的错误消息。

我已经尝试更新 Pod 并删除派生数据,但显然这不起作用。

我该如何解决这个问题?

我在 MacOS 10.15.5 和 XCode 11.6 上运行

感谢您的帮助。 问候, 莫里斯Error Message

【问题讨论】:

    标签: ios xcode


    【解决方案1】:

    根据issue 中的cmets,问题可能是您打开了.xcodeproj 而不是.xcworkspace。其他一些建议的修复方法包括:

    1. 确保您的 cocoapods 构建目标与您的项目构建目标的版本相同。 link
    2. 尝试重新启动您的计算机。 link
    3. 检查您的 podfile 以确保您的构建方案包含在其中。 link

    我在尝试从命令行构建项目时遇到了类似的问题,根本问题是我使用的是.xcodeproj 而不是.xcworkspace。据我所知,这个错误可能是由多种不同的因素造成的。

    【讨论】:

    • 我的 podfile 中的代码中有一个额外的逗号,删除它可以解决问题
    • the problem could be that you opened up .xcodeproj instead of .xcworkspace. 这对我来说是个问题!谢谢:)
    • 重启机器 2 小时后解决了我的问题,否则会浪费时间
    • 谢谢!重新启动为我解决了。有人知道为什么重启就能解决问题吗?
    • 我尝试了 3 个小时来修复这个问题,然后我重新启动了我可爱的电脑。你猜怎么着,它是固定的!但是我很好奇为什么重启机器会起作用?
    【解决方案2】:

    在更新以响应本机 0.65 后,在搜索了几个小时后,这个链接对我有用

    https://github.com/facebook/react-native/issues/29605#issuecomment-706890808

    【讨论】:

    • 感谢您指出这一点。我已将 Podfile 更新到 iOS 11,但忘记在 XCode 目标部署中做同样的事情。在将其设置为 11 后,构建成功。
    • 无论你说什么做了什么,你都把我带到了正确的目的地。谢谢@Pranay
    • 成功了!!在任何 IDE 中打开 /ios/.xcodeproj/project.pbxproj 并搜索 IPHONEOS_DEPLOYMENT_TARGET 将有 2 个,并且都应至少为 11.0
    【解决方案3】:

    如果您使用的是 M1 芯片 Mac,请将其添加到您的 Podfile

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

    【讨论】:

      【解决方案4】:

      我已经解决了这个问题,将带有值 arm64 的调试任何 iOS 模拟器 SDK 添加到 Pods 项目中的排除架构(苹果 MacBook 临 m1)

      【讨论】:

        【解决方案5】:

        所描述的解决方案将 100% 在 Apple 芯片上运行,并且在没有 Rosetta 的情况下运行 Xcode。

        请仅尝试必要的步骤,但如果仍然无效,请尝试所有步骤,包括必要和不必要的步骤。

        1 - 不重要(Package.json)

        "dependencies": {
         "react": "17.0.1",
         "react-native": "0.64.2"
        }
        

        2 - 必要

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

          use_flipper!()
        
          post_install do |installer|
            react_native_post_install(installer)
              installer.pods_project.targets.each do |target|
                  target.build_configurations.each do |config|
                    config.build_settings["ONLY_ACTIVE_ARCH"] = "NO"
                  end
              end
          end
        

        3 - 在 Architectures->Excluded Architectures 下添加 arm64


        4 - 在你的项目下添加一个swift文件,可以是空的,可以是BridgingFile.swift(没什么特别的),这会触发一个桥接头。 Wallah,给你。

        【讨论】:

        • Xcode 可以在没有 Rosetta 的情况下运行,但是您的应用程序二进制文件仍然为 x86_64 编译并且仍然在 Rosetta 下运行,您可以在活动监视器中验证这一点。 Rosetta 不会永远发布作品,所以无论如何我们都需要一个合适的解决方案
        【解决方案6】:

        我的问题是没有设置 VALID_ARCHS = "arm64 arm64e armv7 armv7s x86_64";像这样在 xyzApp/ios/xyzApp.xcodeproj/project.pbxproj

        【讨论】:

          【解决方案7】:

          尝试使用以下命令在终端上运行项目: npx react-native run-ios 并再次在 Xcode 上运行它

          【讨论】:

          • 此命令正在模拟器中运行。但是当尝试从 Xcode 运行到我的 iPhone 时,得到同样的错误。因此,问题仅在于在移动设备中运行时。我现在能做什么?
          • 很遗憾没有。
          【解决方案8】:

          如果你使用的是 M1 芯片

          1. 排除架构中添加arm64

          2. podfile 中添加以下行

          3. 从根目录中删除 node_modules,从 ios 文件夹中删除 Podfile.lock 和 Pods

          4. 在根终端运行yarn install && cd ios && pod install && pod update

          5. 清理您的项目并再次打开

          6. 等待索引项目

          7. 运行项目

          【讨论】:

            【解决方案9】:

            如果您使用的是 react-native。我发现的最佳解决方案是运行“react-native run-ios”。

            【讨论】:

            • 这并不能真正回答问题。如果您有其他问题,可以点击 提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review
            【解决方案10】:

            一旦原因可以导出此错误是在User-Defined 上设置的。最近,我拉了一个项目继续开发。我无法在模拟器上构建它。总是这样的错误。

            未找到模块图

            适用于所有库。我花了很多时间来解决这个问题。我检查了所有配置并发现问题是以前的开发集VALID_ARCHS 只有:arm64e armv7s arm64

            我将其更改为 ios 设备和模拟器:arm64 arm64e armv7 armv7s x86_64 或从 User-Defined 简单删除 VALID_ARCHS

            现在它可以工作了。希望对您有所帮助:-)

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-02-12
              • 2019-12-11
              • 1970-01-01
              • 2021-06-07
              • 1970-01-01
              • 1970-01-01
              • 2018-03-01
              • 2019-11-21
              相关资源
              最近更新 更多