Cocoapods无法找到头文件 Xcode 6

30

我有一个问题,xcode在我的工作区中无法找到我的pods的头文件。

目标的头文件搜索路径似乎没问题

https://www.dropbox.com/s/ulqqai825a6xrg4/Screenshot%202014-09-29%2010.24.04.png?dl=1

这是我的podfile的内容

target "MyApp" do
pod 'AFNetworking', '~> 2.0'
pod 'Reachability'
pod 'ViewDeck', '2.2.11'
pod 'MBProgressHUD', '~> 0.8'
end

但是,当我构建项目时,在prefix.pch中出现了以下错误:

/Users/...../MyApp-Prefix.pch:17:13: 找不到'AFNetworking.h'文件

我尝试在我的podfile中添加 platform :ios, "8.0" 并执行 pod update 但仍然没有成功。

我还尝试添加 $(inherited) 如SO问题中所建议的: Xcode 6 doesn´t find cocoapods libraries

我在mavericks上使用xcode 6。


我有完全相同的问题。你找到任何解决方案了吗? - Stefan Arn
5个回答

106

我找到了解决方案。在您的项目属性中替换为以下内容:

我找到了解决方案


12
知悉,这是项目信息中的内容。 - GraemeArthur
2
这对我有用。似乎每当我调用pod install时,它就会被重置或设置不正确。由于我尚未在我的应用程序中使用测试,因此我删除了MyappTests目标,然后就好了! - BastiBen
我只是想指出(因为我曾经遇到过同样的问题),即使我试图构建常规目标,但将其添加到“测试目标”中也可以解决这个问题。我不敢说我理解为什么会有所改善,但它确实有效。 - shortstuffsushi
@shortstuffsushi - 我在哪里可以找到这个文件? - itsaboutcode
@shortstuffsushi - 我在这里找到了答案 - https://dev59.com/4GMm5IYBdhLWcg3wIsM2 - itsaboutcode
显示剩余2条评论

19

您可能还希望像这样将您的Pod与两个目标链接:

platform :osx, '10.7'

link_with 'MyApp', 'MyApp Tests'
pod 'AFNetworking', '~> 1.0'
pod 'Objection', '0.9'

根据Cocoapods文档这个回答,以下内容已过时:


更新:对于Cocoapods 1.0+,正确的实现Podfile的方式是:

platform :ios, '9.0'
inhibit_all_warnings!

target 'MyApp' do
  pod 'ObjectiveSugar', '~> 0.5'

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

来源:https://guides.cocoapods.org/syntax/podfile.html#podfile


3
我更喜欢这个选项,而不是移除测试目标。 - Veeru
link_with 在 Cocoapods 1.0.1 中已经无法使用。 - electronix384128

6

我在我的项目中解决了这个问题。我为测试设置了第二个目标。我从未使用过这个目标,在将其从项目中删除后,错误消失了。因此,也许不是你的主要目标导致了问题,而是另一个目标。


1
我使用了你的答案找到了解决方案。 - Simón Urzúa
最好使用@jwswart的答案。使用link_with来引用你的目标。测试目标在未来可能会有帮助。 - Shaheen Ghiassy

0

我同意jwswart的答案,因为很多时候我已经意识到仅为'MyApp'定义依赖关系而忽略'MyAppTests'会导致构建过程中断,如下所示:

target :'MyApp' do

..

end

'MyApp'中定义的类使用了在'MyAppTests'中不可见的依赖项。因此,正如jwswart建议的那样:

link_with 'MyApp', 'MyApp Tests'


-3

只是试试注释一下你的目标这行代码

#  use_frameworks!

~~


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接