40

我正在尝试将 PassSlot 添加到我的项目中,但它说它找不到 .h 文件。我从这里正确地遵循了一切:https ://github.com/passslot/passslot-ios-sdk

这是 Xcode 7 的问题吗?它工作得很好,现在我在 Xcode 7 中打开了这个项目,它给了我这个问题。我在 Xcode 6 上重新打开它,它也开始显示问题。

4

8 回答 8

46

我认为迪西是对的。这为我解决了这个问题。

我注意到当您导入第 3 方时,Xcode7 不会自动填写所需的框架搜索路径(我相信 Xcode6 确实这样做了)。通过转到项目 -> 构建设置 -> 搜索路径 -> 框架搜索路径来检查您的是否为空。用你的框架所在的地方填写它。如果它在您的项目下,您可以使用 $(PROJECT_DIR)

于 2015-07-21T17:08:59.587 回答
24

Replacing #import "Headerfile.h" with #import <Framework/Headerfile.h> worked for me.

于 2015-10-08T12:03:27.073 回答
13

当您将所需的框架拖放到您的框架文件夹时,勾选“目标:如果需要复制项目”

那么您现在就可以正确引用它了。

截屏

于 2016-02-04T05:40:50.727 回答
6

刚刚使用 Xcode 7 遇到了这个问题,我最终不得不将第 3 方框架(和捆绑)文件复制到我的项目的主目录中,然后再将其拖到 Xcode 项目中。这允许它添加正确的框架搜索路径,不再给我任何问题。

于 2015-09-24T17:01:48.403 回答
2

在 Objective-C 中创建一个新的测试目标后,我自己就遇到了这个问题。

要记住的一件事是,在某些情况下,每个测试目标都必须在Podfilewith poddependencies 中列出。如果Podfile只是将项目与 pod 关联起来,则可能找不到 pod 头文件。

这是cocoapods 文档Podfile中更复杂的示例。

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

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

post_install do |installer|
  installer.pods_project.targets.each do |target|
    puts "#{target.name}"
  end
end
于 2016-11-04T22:43:15.383 回答
1

我在尝试链接到我自己的自定义框架时遇到了这个错误。问题是我没有设置我的框架来导出所需的标题。为此:

  1. 选择您想要提供的每个头文件,转到 File Inspector > Target Membership,并确保选中目标并将其设置为“Public”。
  2. 在 MyFrameworkName.h 顶级文件中,导入您要使其可用的每个头文件:例如#import <MyFrameworkName/MyPublicHeader.h>
于 2019-12-14T18:33:54.393 回答
0

就我而言,使用 CocoaPods,Xcode 构建良好,但命令行构建无法找到框架头文件。

解决方案是构建工作区,而不是项目!

于 2016-11-06T15:22:06.473 回答
-4

清理项目并重新启动 XCode 有时会有所帮助

于 2016-12-11T13:00:23.300 回答