2015-05-01 49 views
42

我遇到了这个问题,一个全新的项目。 RestKit和Facebook SDK都会发生此问题。奇怪的是,SwiftyJSON工作得很好。我创建了一个全新的快捷项目,并与Podfile:与cocoapods和swift没有这样的模块'RestKit'

source 'https://github.com/CocoaPods/Specs.git' 

use_frameworks! 

target 'test-fb-swift4' do 
    pod "FBSDKCoreKit" 
    pod 'SwiftyJSON', '~> 2.1' 
    pod 'RestKit', :inhibit_warnings => true 
end 

target 'test-fb-swift4Tests' do 

end 

创建文件我跑吊舱安装和测试-FB-swift4.xcworkspace文件重新打开的Xcode后。

现在在我的控制器中,我把一个导入RestKit,我得到错误没有这样的模块'RestKit'。我已经尝试了许多不同的方式向Podfile格式化甚至下降到非常简单的版本,如:

source 'https://github.com/CocoaPods/Specs.git' 

pod 'RestKit' 

我曾尝试添加和删除use_frameworks,有和没有目标。有和没有:inhibit_warnings。

我正在运行CocoaPods 0.36.4并尝试了最新的rc build,同样的交易。另一个项目的Objective-C版本运行良好。这是我第一个使用Swift的项目,我在这个问题上陷入困境。

+0

显示您如何导入。 – Wain

回答

31

我有一个类似的问题。不是特别使用RestKit,而是最初使用HockeySDK。我尝试了一切,包括删除和重新安装豆荚,更新cocoapods本身和更新豆荚,删除派生数据,清理项目等。

然后我发现每个豆荚对我来说都是个问题。继续就相关主题搜索后,我终于发现,在:

•目标>构建阶段>链接二进制与图书馆

我有一个错位的吊舱框架(可能从先前荚安装或安装尝试)。

Target > Build Phases > Link Binary With Libraries

取出后,问题消失。我注意到,人们似乎经历下类似的问题:

•项目>资讯>配置

还有,那里的荚框架被正确映射。所以,如果第一个不适合你,你可能还想检查第二个。

+1

关于构建配置的第二个建议是对我造成的。我将应用程序项目中的“Debug”构建配置重命名,但在Pods项目上,这创建了一个新配置,而不是重命名“Debug”。从Pods项目中删除“Debug”配置,使配置与应用项目中的配置相匹配,解决了这个问题。 –

26

第二个选项适合我。在我的项目>资讯>配置,我有我的项目2个目标:常规one(QUIZZ)和测试一个(QuizzTests): enter image description here

对于经常一个,配置上镶嵌着“Pods.debug “或”Pods.release“,但QuizzTests没有。只要我填写QuizzTests的配置,一切都为我工作。

+0

不适合我... – bashan

+0

感谢您的回答。这对我有用! –

+0

GG,就是这样! –

81

我有同样的问题。我的解决方案是使用.xcworkspace而不是.xcodeproj来打开该项目。 .xcodeproj只包含主项目; .xcworkspace包括一切,包括Restkit。

+0

我不得不“保存为工作区”来获得新项目的工作区 – hanzolo

+1

很高兴我在搜索超过1小时后找到了答案。 OP应该将这标记为已接受。 –

+0

非常丑陋的解决方案。更好的方法是解决该问题:在目标>构建阶段>链接二进制文件与库之间移除并添加Pods.framework。 – Dmitry

12

你可以很容易地解决这个问题的一件事是确保XCode在安装pod时完全关闭。每当我遇到这个问题,我都会回过头来看看,即使我关闭了这个项目,XCode仍然是开放的。希望有所帮助!

+0

非常有帮助,我尝试了除此步骤之外的所有内容。 – Zee

9

我发现的另一个可能的解决方案是将use_frameworks!添加到您的Podfile中(如果您尚未运行),然后再次运行pod install。 当我仅添加该吊舱时,这是Firebase的问题。

+0

也为我工作。似乎我删除了use_frameworks!从我的Podfile,因为我有一个混合的Swift/Objective-C项目,Swift部分需要包含框架。 – AndyDunn

-3

您的Xcode没有更新为由库/框架

5

此问题的另一个原因可能是在目标的构建设置错误的值和预期版本 - 只有建立有源体系。像在图片中的设置适用于我。 Correct settings

+0

有趣的,也为我固定。以前我改变过这个设置,但是做另一个'pod install'重置这个值。 –

4

在我来说,我只需要检查下一个选项在Xcode 查找隐含依赖条件 enter image description here

我不知道为什么,但这已经足够对我,对你的希望太: )。

7

对我来说,解体和重新安装豆荚解决了这个问题。

首先

pod deintegrate 

然后

pod install 
+0

这是一个非常简单的解决方案,由于某种原因,这里列出的其他人不适合我。可能无关紧要,但确保Xcode在分解时关闭。 –

1

我加入面料到我的项目时,也有类似的问题。我有多个目标(发布和开发)。它会为import Fabric投掷No Such Module。对我来说有效的是去Project> Build Phases> Link Binary with Libraries,并简单地将pod框架的状态标记为可选enter image description here

-1

问题可能是真的没有这样的模块。特别是如果pod名称包含破折号和其他有争议的字符。

在我的情况下,我试图使用Dip-UI库。该示例项目使用了Carthage,我想用CocoaPods替换它。迦太基的模块名是DipUI,而CocoaPods的模块名是Dip_UI,这意味着我得到“没有这样的模块”,直到我改变了名字。

0

当我编辑和删除一个目录我没有项目需要 - 构建设置(旁边信息),它是在我的应用程序消灭两个框架搜索路径条目目标构建设置。确保所有的四行从波德自动填充条目下面的图片中安装,如图所示: Framework Search Paths in Build Settings for your Target App调试发布复制条目下面的行,一次选择一列,然后点击删除其应该从上面的行复制。 一旦我这样做了,工作空间就会建好。

0

如果您使用多个访问同一类的目标(例如消息扩展应用程序),并且该类已添加到两个目标中,则必须为PodFile中的两个目标添加Pod。

2

对我而言,“查找隐式依赖关系”未被选中。这是问题。 一劳永逸我checked吧。

路径:Edit Scheme > Build > Find implicit Dependencies

enter image description here

1

在我的情况下,首先我只有一个在Xcode目标。我执行pod install。 几个月后,我不得不制造另一个目标,所以我有多个目标。

在这种情况下,如果我做pod install并构建xcode,我得到一个“没有这样的模块”的错误。

所以我删除pod文件,然后pod init

Podfile格式已被更改为多个目标

它的工作原理!

看看这个!

1

事情我想:

  • 删除并重新添加链接吊舱框架
  • 清洁
  • 删除导出数据
  • 荚再次安装

唯一的解决办法我只好这个问题是暴露方案选择器(运行/停止按钮旁边)的Pods-(yourapp)目标并手动建立临时t Pods-在构建并再次运行我的主要应用目标之前的目标。我希望这可以节省10分钟的人!

1

经过数小时的尝试,我发现了原因。我的主要应用程序目标有4个构建配置(调试,发布,内部,外部)。然而,我的框架(子项目)没有内部的,外部的,因为它们是自定义添加的。一旦我添加内部/外部到我的框架项目,所有归档罚款。

相关问题