35

当我尝试构建我的项目时,我收到一个编译时错误,提示找不到我的 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
4

9 回答 9

107

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

于 2020-01-11T17:33:12.797 回答
36

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

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

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

希望这对你们有所帮助!

于 2019-09-11T11:45:30.367 回答
25

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

于 2020-05-15T11:02:47.660 回答
6

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

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

这样做的方法如下:
打开 Finder --> 应用程序 --> 右键单击​​“Xcode” --> 获取信息 --> 选中“使用 Rosetta 打开”

于 2021-08-19T17:41:19.113 回答
2

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

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

于 2020-12-10T12:48:02.177 回答
1

我遇到了同样的问题,但是 Fastlane 使用了 gym build_app

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

经过大量搜索,它能够通过确保IPHONEOS_DEPLOYMENT_TARGET我安装的每个 Pod 的版本从我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 ://stackoverflow.com/a/63489366/10211406

于 2021-06-14T23:15:03.043 回答
0

如果您在命令行上构建xcodebuild,请确保您正在使用

xcodebuild -workspace ...

而不仅仅是xcodebuild

xcodebuild -project ...
于 2022-02-17T02:58:36.893 回答
0

这有点骇人听闻,但请尝试将其添加到您的 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
于 2022-01-07T08:43:41.800 回答
0

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

于 2020-11-19T06:18:06.450 回答