如何修复 cocoapod .modulemap 文件未找到

Posted

技术标签:

【中文标题】如何修复 cocoapod .modulemap 文件未找到【英文标题】:How to fix cocoapod .modulemap file not found 【发布时间】:2019-09-04 15:20:47 【问题描述】:

当我尝试构建我的项目时,我收到一个编译时错误,提示找不到我的 pod 的“模块映射文件”并且我缺少一个“SwiftShimes”模块。

这很奇怪,因为我所有的模块映射文件都在我安装 pod 时应该在的位置。

我正在使用 Xcode 10.2 和 Cocoapods 1.6.1。

我已经尝试了以下 ->

从我的项目中分离 cocoapods 清理项目 已删除 ModuleCache 和 DerivedData 重新启动我的电脑

这是我遇到的错误类型 ->

Module map file '/Users/kaunamohammed/Library/Developer/Xcode/DerivedData/OutNow-gxdxvzwmnijmrlajtbtyclkhrgqs/Build/Products/Debug-iphoneos/CodableFirebase/CodableFirebase.modulemap' not found

我希望我的项目能够正确构建,但事实并非如此,我不确定还能做什么。

这就是我的 Podfile 的样子

platform :ios, '10.0'

workspace 'OutNow'

target 'OutNow' do
  use_modular_headers!
  #Pods for OutNow
  pod 'Instabug'
  pod 'SwiftMessages'
  pod 'CodableFirebase'
  pod 'Firebase/Core'
  pod 'Firebase/Auth'
  pod 'Firebase/Storage'
  pod 'Firebase/Firestore'
  pod 'Firebase/Messaging'
  pod 'Firebase/DynamicLinks'
  pod 'MarqueeLabel/Swift'
  pod 'RxSwift', '4.4.2'
  pod 'RxCocoa', '4.4.2'
  pod 'Kingfisher', '5.3.1'
  pod 'InstantSearchClient', '6.0'
  pod 'CoordinatorLibrary', '1.0.5'
  pod 'UIScrollView-InfiniteScroll', '1.1.0'

  target 'OutNowTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

【问题讨论】:

最新版本的 CocoaPods 是 1.6.something,还有一个 1.7 beta 版本。我会将您的 CocoaPods 更新到最新版本(1.6.something)并再次尝试pod install。此外,您可能想发布您的Podfile,因为您可能安装了错误版本的 Alamofire。最后,您打开的是工作区,而不是项目? 我现在已经更新到最新的稳定版本的 cocoapods 并完成了 pod install 但问题仍然存在 你看过这个答案了吗? ***.com/a/30836224/4475605 是的,我做到了。不幸的是,问题仍然存在 出于某种奇怪的原因,现在一切似乎都正常了。感谢您的帮助? 【参考方案1】:

如果它对其他人有帮助,我能够以不同的方式解决这个问题。我不小心打开了我的.xcproject 而不是我的.xcworkspace。当我打开正确的文件时,错误就消失了。

【讨论】:

一次原因需要检查:***.com/a/69711515/454666【参考方案2】:

我自己解决了这个问题。我可以告诉你我做了什么。不知道具体是哪些步骤完成的,但以下是所有步骤:

    将 Podfile 的内容复制到安全的地方 运行:pod cache clean --all 从目录中删除“Podfile”文件。 Xcode:产品 > 清理构建文件夹 运行:pod init。一个新的“Podfile”文件被添加到目录中 开始将原始 Podfile 的部分内容添加到此文件中 运行:pod install 再次尝试构建您的项目

就我而言,我认为“Podfile”中的 use_frameworks! 行起到了作用。

希望对大家有所帮助!

【讨论】:

我刚刚做了第 2、4 和 7 步,它对我有用。谢谢!【参考方案3】:

只有当我想制作存档时,我才会遇到这个问题。另一方面,调试工作正常。过了一会儿,我注意到我的 Target、Project 和 Podfile 的最小 iOS 版本之间的最小 iOS 版本不同。将它们全部同步到相同的值后(iOS 11)Xcode 为我提供了验证项目设置 - 更新到推荐的设置选项,我接受了该选项并且我能够存档我的项目。

【讨论】:

谢谢。将 pod 文件中的 iOS 版本更新为相同的值后,目标和项目。效果很好。 我在 React native 中使用最新的 Stripe pod 时遇到了同样的问题 - 我在 Podfile 中调高了目标,安装了所有 pod,应用程序在调试中运行良好,但我无法存档因为我没有在项目设置中更新最低 iOS 版本。现在工作正常! 我在这上面花了 2 天时间。我的 Podfile 中确实有 iOS 11,但我的项目和目标中有 iOS 10。非常感谢@josip-b? 感谢您的回答!我遇到了同样的问题,只是将版本设置为相同的 (11) 修复了它。所以这是由于只在 Podfile 中增加了所需的版本,而在其他地方没有增加! 我确保部署目标在目标、项目和 pod 文件中是相同的。但仍然出现错误。你能帮我解决这个问题吗?【参考方案4】:

我花了一整天的时间试图弄清楚如何解决这个问题。我在 M1 机器上的项目中遇到了问题。

我在 Xcode 中启用了“使用 Rosetta 打开”选项并为我工作。

【讨论】:

【参考方案5】:

我通过删除 Swift Compiler - Custom Flags 中的 OTHER_SWIFT_FLAGS 自定义标志来解决此问题

OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"$PODS_ROOT/modulePath/moduleName.modulemap\"";

【讨论】:

【参考方案6】:

我也有这个问题,我对XCode不是很熟悉,但是我打开了.xcodeworkspace文件,然后点击build,成功了!

【讨论】:

【参考方案7】:

我遇到了同样的问题,但使用健身房 build_app 的 Fastlane。

如 Josip B 所述,我确保在我的 Target、Project 和 Podfile 之间同步最低 iOS 版本。这允许我使用 XCode 归档我的应用程序,但使用 Fastlane 仍然失败。

经过大量搜索,它能够通过确保我安装的每个 Pod 的 IPHONEOS_DEPLOYMENT_TARGET 版本从我的 Podfile 使用此 Podfile 安装后脚本继承该版本来解决我的问题:

post_install do |installer|
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
      end
    end
  end

参考这篇文章:https://***.com/a/63489366/10211406

【讨论】:

【参考方案8】:

这有点小技巧,但请尝试将其添加到您的 podfile 中:

post_install do |installer|
installer.pods_project.targets.each do |target|
  if (target.name&.eql?('FBReactNativeSpec'))
    target.build_phases.each do |build_phase|
      if (build_phase.respond_to?(:name) && build_phase.name.eql?('[CP-User] Generate Specs'))
        target.build_phases.move(build_phase, 0)
      end
    end
  end
end

【讨论】:

以上是关于如何修复 cocoapod .modulemap 文件未找到的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 7.0.1 - 无效的 Swift 支持 - cocoapods 如何修复?

找不到调试-iphonesimulator/YogaKit/YogaKit.modulemap'

致命错误:找不到模块映射文件 YogaKit.modulemap

构建到 IOS 的颤振时找不到 BoringSSL-GRPC.modulemap

Xcode 13 Debug-iphonesimulator/YogaKit/YogaKit.modulemap 未找到刚刚初始化的全新项目

在 Macbook M1 上的 Xcode 12.4 中构建后,在 iOS 上的 React Native 中找不到 YogaKit.modulemap