Cocoapods +无法为'x'加载底层模块

问题描述 投票:77回答:20

我正在运行XCode 7,Swift 2.0,iOS 9。

我想使用Cocoapods在我的项目中安装Alamofire。我做了以下事情:

gem install cocoapods

pod setup

pod init

将Podfile更新为:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
use_frameworks!

target 'JSONeg' do

  pod 'Alamofire', :branch => 'swift-2'

end

然后我安装了pod:

pod install

我将以下内容添加到ViewController.swift中

import Alamofire

这会引发以下错误:

Cannot load underlying module for 'Alamofire'

我测试了另一个pod并且它引发了同样的错误,所以我猜问题是安装了Cocoapods。任何帮助将不胜感激。

ios swift afnetworking cocoapods alamofire
20个回答
202
投票

这似乎是XCode中的一个错误。我遇到了同样的问题,正如对这个问题的另一个答案的评论中所描述的那样,构建项目使得错误消失了。


3
投票

你有没有检查过你是否有最新版的Cocoapods?您可以通过更新所有宝石进行更新:

sudo gem update

或者只是重新安装Cocoapods:

 [sudo] gem install cocoapods

如果这样做也无济于事:CocoaPods - build for iOS 9 / Swift 2 with Xcode-beta

在哪里向您展示如何在Xcode首选项“位置”选项卡中轻松更改命令行工具版本,并将“命令行工具”更改为Xcode 7.0。


2
投票

Could not load underlying module

  1. 检查框架路径:Build Settings -> Framework Search Paths
  2. 确保框架的路径不包含空格。
  3. 如果路径包含变量,请通过搜索Build Settings中的变量名称来查找变量的值。
  4. 确保变量的值不包含空格。
  5. 如果路径包含空格,请重命名包含空格的目录。
  6. 清理并构建项目。

总之,请确保您的<Project Root>路径不包含空格。否则,重命名包含空格的dir,然后清理并构建项目。

例如如果这是您的项目根目录:/Users/handsomeboy/ios app/Fancy App/,请重命名包含空格的文件夹。摆脱空间的一种方法是:将'ios app'改为'ios_app'


2
投票

按照步骤:

1.安装pods 2.Open workSpace 3.运行/构建你的应用程序4.然后你可以导入框架


1
投票

同样的问题对我来说。我通过删除pod文件中的Alamofire版本解决了这个问题。

Pod文件为

# Uncomment this line to define a global platform for your project
platform :ios, "8.0"

# Uncomment this line if you're using Swift
use_frameworks!

target 'GettingSwift' do
 pod 'Alamofire'
end

target 'GettingSwiftTests' do
end

1
投票

GCC_SYMBOLS_PRIVATE_EXTERN(在目标设置中显示为“默认隐藏的符号”)设置为链接框架中的YES帮助我摆脱了这个错误。我花了2天时间才找到这个,希望它会帮助别人:)


1
投票

在我的情况下,这是一个不同的原因,它是我的目标构建设置中的其他swift标志,我不得不将继承的标志添加到顶部。


0
投票

安装CocoaPods时,请务必通过删除#来指定ios 9.0。因此,# platform :ios, '9.0'应该只是platform :ios, '9.0'然后,如果错误再次显示,只需构建并运行。构建并运行后,错误不应该返回。

此外,如果您的计算机上安装了多个版本的Xcode,则可能会发生这种情况。首先退出(不仅仅是关闭)Xcode的所有版本。


0
投票

尝试Build For Test适合我


0
投票

如果您已验证已成功安装Pod,则该错误可能与您在安装Pod之前剩余的派生数据相关联。您可以转到File -> Workspace Settings... -> Derived Data清除您的派生数据。删除与您的应用关联的派生数据文件夹并清理您的版本应该可以解决问题。


0
投票

就我而言: 1. //import Pod_Module的评论线 2.转到项目 - >清除或使用快捷键(Command + Shift + K) 2.关闭您的项目 3.在终端中转到项目目录 4.运行> pod install 5.打开.xcworkspace文件并构建它! 6.取消注释import Pod_Module


21
投票

转到产品>构建,它​​将解决问题:enter image description here


0
投票

在此URL:https://github.com/Alamofire/Alamofire/issues/441

其中一位用户写道:

清洁无法正常工作,从pods重新安装无法正常工作,从carthage安装无法正常工作,手动安装无法正常工作。我终于在Build for Testing之后开始工作了。

所以我尝试了这个(xcode版本9.2(9C40b)):

enter image description here

它对我有用。错误现在消失了。

注意:我的吊舱不是Alamofire所以我想它适用于每个Pod。


0
投票

另一种可能的情况:确保测试目标在父目标的范围内定义(不在其外部)

EG

target 'MyApp' do
  pod 'GoogleAnalytics', '~> 3.1'

  target 'MyAppTests' do
    inherit! :search_paths
    pod 'OCMock', '~> 2.0.1'
  end
end

如果它看起来像:

target 'MyApp' do
  pod 'GoogleAnalytics', '~> 3.1'
end

target 'MyAppTests' do
  inherit! :search_paths
  pod 'OCMock', '~> 2.0.1'
end

那么你也会收到这个错误。


11
投票

无法为SWIFT加载“x”的基础模块:

如何解决问题:

步骤:1创建一个新项目,然后在不安装pod的情况下成功构建和运行。

步骤:2在构建并运行项目成功之后,现在尝试安装pod然后尝试importrealm,alamofire,图表等它将像魅力一样工作。

失败案例 - >新项目 - >通过首先构建的cocoapods添加(领域,alamofire,图表等) - >打开Xcode工作区 - >构建和运行

成功案例 - >新项目 - >构建和运行 - >通过cocoapods添加(领域,alamofire,图表等) - >打开Xcode工作区 - >再次构建和运行=成功


10
投票

这对我有用:

  1. 关闭你的项目
  2. 在终端中转到项目目录
  3. 添加此命令:pod update
  4. 之后,您的所有pod都将更新。只需运行您的项目

8
投票

一旦你安装了Alamofire pod。

Step.1您应该双击your_project_name.xcworkspace文件打开项目。

Step.2转到项目设置 - >构建阶段 - >使用库链接二进制 - >添加框架“Alamofire.framework”

而已!!

现在您可以导入模块


7
投票

在我的案例中有什么帮助:

1)关闭项目和XCode

2)在terminal repeat命令中

> pod install

3)打开项目

(如果没有帮助,请在重新安装前尝试删除Pod /文件夹)


6
投票

我尝试了所有这些解决方案:重建,清理,重新安装吊舱等,但在我的情况下,由于AR,我将“仅限构建活动架构”设置更改为“否”是一个问题我正在使用的图书馆。将其更改回“是”并修复。希望这有助于某人。


6
投票

我不得不做一个产品>(选择点击)清洁构建文件夹...然后再次运行,问题就消失了。


5
投票

我在Xcode版本8.3.1(8E1000a)。不知何故,当我想要pod安装SwiftCloudant模块时会出现这个问题。我运行pod安装时可能没有关闭我的Xcode。

我在Targets> General选项卡中手动添加了SwiftCloudant.framework。

Targets > General > Linked Frameworks and Libraries

© www.soinside.com 2019 - 2024. All rights reserved.