【问题标题】:No such module ... in Xcode没有这样的模块...在 Xcode
【发布时间】:2017-02-19 14:00:00
【问题描述】:

我在使用 Xcode(使用 Swift)时遇到了一个问题,这让我完全不知所措。我意识到已经提出并回答了这个问题,但没有一个答案对我有用,而且我的情况似乎与其他问题有点不同,因为我所有的 pod 都失败了(不仅仅是一个特定的)。一周前它们都运行良好。

我将 Cocoapods 用于一些更常见的 Swift 框架(例如 Alamofire、Eureka、Kingfisher、SwiftyJSON 等)。它们在 Xcode 7 中都运行良好。但是,其中一个(自动)更新提升了我的 Xcode 版本,之后必须在 podfile 中指定您的目标。我这样做并运行了 pod install。 pod 都还在,但现在与这些框架相关的每个导入语句都失败了。

起初我认为这是一个 Alamofire 问题,因为这是第一个因“没有这样的模块 'Alamofire'”错误而失败的问题。我用 Alamofire 尽我所能,包括:

  • 清理并重建
  • 清理构建文件夹
  • 重启 Xcode
  • 重启电脑
  • 删除所有派生数据
  • 为“链接框架和库”添加了框架
  • 为“将二进制文件与库链接”添加了框架
  • 已验证我打开的是工作区而不是项目
  • 重新安装 CocoaPods
  • 重新安装 Xcode 7.3.1 版

没有什么可以消除“没有这样的模块...”错误。最后,我从 pod 中删除了 Alamofire,并将 Alamofire 项目拖到我的项目中。这使我可以删除 Alamofire 的导入语句。然而,令我沮丧的是,现在下一个框架导致“没有这样的模块”。我将接下来的三个框架移到了我的项目中,看起来它会继续下去。显然,我的 Pods 框架都不再被识别。我安装了 Xcode 8 并使用 Swift 2.3 进行了尝试,但我得到了相同的“没有这样的模块”错误。

我真的更喜欢使用 Cocoapods,因为它使升级更容易,还有其他奖励。我猜我有一些设置错误正在搞砸我所有的豆荚,但没有任何运气找到它。这是一场灾难,因为它已经关闭了几天的开发,没有任何修复的迹象。如果有什么我可以做或提供的帮助找到解决方案,请告诉我。如果有人可以提供任何可能的解决方案甚至可以尝试的东西,将不胜感激。我目前正在使用 Xcode 7.3.1 版。

我的 pod 文件如下所示:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

target 'Y2GOsp' do
    use_frameworks!

    # Pods for Y2GOsp
    pod 'Alamofire', '~> 3.0'
    pod 'AlecrimCoreData', '~> 4.0'
    pod 'Kingfisher', '~> 2.4'
    pod 'Eureka', '~> 1.6'
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7'
    pod 'PhoneNumberKit', '~> 0.1'
    pod 'PKHUD'
    pod 'Dollar'
end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['SWIFT_VERSION'] = '2.2'
        end
    end
end

【问题讨论】:

  • 您是否尝试过重新安装或更新 CocoaPods?
  • @l'L'l ,是的,我已经重新安装了几次。我什至尝试了 --pre 版本。我也重新安装了 Xcode,因为我的原始安装已升级到版本 8。我找到了 7.3 版安装程序并重新安装了它,但仍然出现错误。
  • 当您尝试将框架添加到您的项目中时,build settings > frameworks search path 的设置是什么?
  • $(PROJECT_DIR)/Y2GOsp $(PROJECT_DIR) pods 文件夹的路径也应该在里面吗?
  • @l'L'l 你让我走上了正轨。我想我已经解决了,现在。我仍在处理其他迁移问题,但我不会再停止使用 Import 语句。我的框架搜索路径值现在是 $(inherited)(非递归)、$(PROJECT_DIR)/build/Debug-iphoneos(非递归)和 $(SRCROOT)(递归)。如果您想发布答案,我可以将其标记为正确答案。谢谢。

标签: ios swift xcode cocoapods podfile


【解决方案1】:

@l'L'l 的评论让我找到了解决方案。我去了

build settings > frameworks search path

并将其设置为以下内容:

$(inherited) (non-recursive)
$(PROJECT_DIR)/build/Debug-iphoneos (non-recursive)
$(SRCROOT) (recursive)

现在可以正确找到 pod 框架。

【讨论】:

  • 谢谢!你拯救了我的一天!
【解决方案2】:

确保您在 Xcode 中打开了 .xcworkspace 文件,而不仅仅是 .xcodeproj 文件。

【讨论】:

  • 我花了几个小时尝试其他几个 stackoverflow 中提到的所有内容。就是这样!
【解决方案3】:

在 Pod 文件中

取消注释下面的行以为您的项目定义一个全球平台

平台:ios,'10.0'

use_frameworks!

现在在 xcode 中

a) 清理您的项目

b) 确保所有“Pods”>“Build Settings”>“Build Active Architecture Only”设置为“NO”

c) 现在,构建项目

【讨论】:

    【解决方案4】:

    有时pod deintegrate 然后pod install 也会帮助我

    【讨论】:

      【解决方案5】:

      尝试将您的 SDK 版本设为早期版本

      pod 'Alamofire', '~> 3.0'
      pod 'AlecrimCoreData', '~> 4.0'
      pod 'Kingfisher', '~> 2.4'
      pod 'Eureka', '~> 1.6'
      pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7'
      pod 'PhoneNumberKit', '~> 0.1'
      pod 'PKHUD'
      pod 'Dollar'
      

      例如,将 3.0 更改为可用的先前版本,当我遇到同样的问题时,它对我有用一次。

      pod 'Alamofire', '~> 2.4' #I am assuming prev available version is 2.4
      

      但不一定是“Alamofire”版本导致“没有这样的模块”,您可以尝试 pod 文件中列表中的每一个。

      【讨论】:

      • 看起来这可能有效。无论如何,我已经过了 Alamofire。我现在在 Eureka 上遇到错误。我将在早上与它进行更多的斗争,并将让你知道我的结果。谢谢。好名字,也是......我的名字也是谢尔顿:)
      • ?嗨,谢尔顿。如果您认为正确,请选择正确答案。
      • 不走运 :( 我以为它工作了一秒钟,但后来意识到我已经删除了 import 语句,所以它只是转到下一个语句,最终会在编译的后期失败. 当我把 import 语句放回去时,它又开始失败了。
      【解决方案6】:

      我遇到了同样的问题,我只是通过确保选中“查找隐式依赖项”来解决它。转到编辑方案-> 构建。以前我取消选中这个,所以我的 xCode 会运行得更快一点。从来没有意识到它稍后会抛出这个错误。

      【讨论】:

        【解决方案7】:

        对我来说,问题是我在我的项目中更新了 构建配置 的名称,但我没有在使用的 scheme 中选择新的构建配置构建配置。将方案中的构建配置更新为新名称解决了这个问题!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-10-23
          • 2018-01-17
          • 1970-01-01
          • 1970-01-01
          • 2021-07-08
          • 2015-11-11
          • 2016-07-11
          相关资源
          最近更新 更多