如何将 obj c 框架导入 swift 桥接 header?

How to import obj c framework into swift bridging header?

我总是在将框架 header 导入我的项目时发现问题。例如,我在这张截图上的小试用项目。导入 Facebook SDK headers 时我做错了什么?这是一个非常简单的步骤,但我无法找出它有什么问题。我什至像在 Facebook 开发者网站上一样一步一步地跟进。

编辑:抱歉,我可能没说清楚。桥接 header 已经设置,我已经在构建设置中设置了桥接 header 位置路径。这就是它产生错误的原因,因为它包含在编译中。问题是,使用当前导入 Facebook SDK 和桥接 header 的设置,我无法将 Facebook SDK 导入桥接 header。

我尝试过的事情:

None 它们都有效(它们都像屏幕截图一样产生错误,这意味着 bridging-header 没问题并包含在编译中,但找不到 header 我指的是)。

新建文件 -> iOS 源 -> Objective-C 文件 -> 输入任何(示例 "abc")名称 -> 下一步,创建 -> 将在顶部显示消息,选择 Create Bridging Header -> Delete abc.h -> Click ProjectName-Bridging-Header.h -> import -> finish.

制作一个 Obj C Bridging:File -> New -> Source -> Header File -> Name as AppName-Bridging-Header.

添加以下内容(例如在 SDWebImage 的情况下):

  #ifndef AppName_AppName_Bridging_Header_h
        #define AppName_AppName_Bridging_Header_h

        #import <SDWebImage/UIImageView+WebCache.h>
        #import "UIImageView+WebCache.h"
        #endif

    or

 #import "UIImageView+WebCache.h"  

注意:构建设置,在Swift编译器-代码生成中,确保Objective-C桥接头构建设置下有桥接头文件的路径。 - 就像 testSD/testSD-Bridging-Header.h 或 testSD-Bridging-Header.h (打开项目文件夹并找到头文件路径)

@Chen:在你的情况下,尝试添加“-ObjC”链接器标志。

Select the project file from the project navigator on the far left side of the window.

Select the target for where you want to add the linker flag.

Select the “Build Settings” tab.Choose “All” to show all Build Settings.

Scroll down to the “Linking” section, and double-click to the right of where it says “Other Linking Flags”.

A box will appear, Click on the “+” button to add a new linker flag.
Type “-ObjC” (no quotes) and press enter.

现在我找到了答案。问题是框​​架没有存储在项目文件夹中,而是存储在下载文件夹中。是的,Facebook 开发指南告诉我直接从下载框架的位置拖动框架,导入时我没有选中 'copy files if needed' 复选框。从这个 answer,我发现我需要填写框架基础文件夹的搜索路径,以便 Xcode 能够找到它。谢谢大家的回答。