Cocoapods +无法加载“ x”的基础模块


89

我正在运行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 install

并将以下内容添加到ViewController.swift

import Alamofire

这将引发以下错误:

Cannot load underlying module for 'Alamofire'

我测试了另一个Pod,并提出了相同的错误,所以我猜问题出在Cocoapods的安装上。任何帮助将不胜感激。


检查您是否已导入所需的框架
user3722523

Answers:


209

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


4
我几乎在任何项目开始时都来这里...谢谢好友
SoliQuiD

2
该死的解决方法仍然有效。XCode应该是开源的。
Siddharth



10

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

如何解决问题:

步骤:1创建一个新项目并成功构建并运行,而无需安装pod。

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

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

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


当您在现有项目中有99%的时间发生此错误时,就不会考虑每次看到此错误都将“启动一个新项目”。怎么样只是想“荚更新”
Renexandro

9

安装Alamofire吊舱后。

步骤1.您应该通过双击your_project_name.xcworkspace文件来打开项目。

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

而已!!

现在您可以导入模块


8

对我而言有什么帮助:

1)关闭项目和XCode

2)在终端重复命令

> pod install

3)打开项目

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


1
另外,请Pod/在重新安装之前删除文件夹
nikans

7

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


没错,那是主要问题,您必须使用command-shift-K进行清洁
Hola Soy Edu Feliz Navidad

我必须将其设置为是。奇怪的。
蒙迪

7

我必须要做一个产品>(选择单击)Clean Build Folder ...,然后再次运行,问题消失了。


5

我使用的是Xcode版本8.3.1(8E1000a)。当我想Pod安装SwiftCloudant模块时,就会以某种方式发生此问题。运行pod install时,可能没有关闭Xcode。

我修复了此问题,并在“目标”>“常规”选项卡中手动添加了SwiftCloudant.framework。

目标>常规>链接的框架和库


在其他所有方法都失败之后,这实际上是可行的。非常感谢。
AmirZ

4

就我而言,这是一个不同的原因,这是我的目标构建设置中的“ 其他”快速标志,我不得不在顶部添加继承的标志。


3

您是否检查过Cocoapods的最新版本?您可以通过更新所有gem来进行更新:

sudo gem update

或只是重新安装Cocoapods:

 [sudo] gem install cocoapods

如果这样做没有帮助,请查看:CocoaPods-使用Xcode-beta为iOS 9 / Swift 2构建

其中显示了如何轻松地在Xcode首选项“位置”选项卡中更改命令行工具版本,以及如何将“命令行工具”更改为Xcode 7.0。


是的,它是最新版本。我只是想出了问题。我建立了这个项目,突然间,它成功了。

好吧,那么请用您找到的解决方案回答您自己的问题,以便其他人在遇到问题时可以解决该问题,
Glenn 2015年

3

按照步骤:

1.安装容器2.打开工作区3.运行/构建您的应用程序4.然后您可以导入框架


2

无法加载基础模块

  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

在链接的框架中设置GCC_SYMBOLS_PRIVATE_EXTERN(在目标设置中显示为“默认情况下隐藏的符号”)可以YES帮助我摆脱此错误。我花了2天的时间找到答案,希望它能对某人有所帮助:)


2

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

其中一位用户写道:

清洁不起作用,从吊舱重新安装不起作用,从迦太基进行安装不起作用,手动安装不起作用。在Build for Testing之后,我终于让它工作了。

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

在此处输入图片说明

它确实为我工作。错误现在消失了。

注意:我的Pod不是Alamofire,所以我想它对每个Pod都适用。


2

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

例如

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

那么您也会收到此错误。


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

在我的情况下:

1.评论行//import Pod_Module

2.转到项目->清理或使用快捷键(Command + Shift + K)

2.关闭项目

3.在终端中转到项目目录

4.运行> pod install

5.打开.xcworkspace文件,然后建立它!

6.取消注释行import Pod_Module


0

安装CocoaPods时,请确保通过删除#指定ios 9.0。因此,# platform :ios, '9.0'应该只是platform :ios, '9.0'然后,如果再次出现错误,只需构建并运行。生成并运行后,该错误不应再出现。

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



0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.