18

我在使用 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
4

7 回答 7

32

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

build settings > frameworks search path

并将其设置为以下内容:

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

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

于 2016-10-13T21:58:51.090 回答
15

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

于 2018-03-08T11:29:11.530 回答
8

在 Pod 文件中

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

平台:ios,'10.0'

使用_frameworks!

现在在 xcode

a) 清理你的项目

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

c) 现在,构建项目

于 2017-10-25T13:44:45.620 回答
3

有时pod deintegrate也会pod install帮助我

于 2019-11-21T12:18:26.820 回答
1

尝试将你的 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 文件中列表中的每一个。

于 2016-10-11T04:27:23.157 回答
1

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

于 2020-09-04T02:07:11.373 回答
0

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

于 2021-09-21T19:21:37.287 回答