将 Objective C 框架导入我的 Swift 项目后,我的项目无法识别桥接文件中的头文件

Posted

技术标签:

【中文标题】将 Objective C 框架导入我的 Swift 项目后,我的项目无法识别桥接文件中的头文件【英文标题】:After importing Objective C Framework into my Swift project, my project does not recognise my header file in my Bridging file 【发布时间】:2016-08-04 08:03:35 【问题描述】:

我必须将一个框架导入到我用 Objective C 编写的 Swift 项目中。所以我创建了一个桥接文件,在我将头文件添加到它并编译之后,我的项目说它找不到他们。下图显示了我的框架,您可以清楚地看到 AWController.h,但是在构建时它会在我的桥接文件中引发错误。

桥接文件显示在我的设置中,那么我做错了什么或错过了什么?我在 Build Settings 中将我的 Defines Module 设置为 Yes,并且我的 Module Name 没有空格。

【问题讨论】:

查看我的answer 这种情况 很确定这是重复的。如果是考虑删除,如果不更新问题。 我已经进行了这些更改并修改了上面的条目以显示它,但它仍然无法构建 您安装了任何 pod 吗?只需做一件事创建新项目并重新组合项目,而不是再浪费时间。 不,我没有使用 pods 请从 Xcode (Cmd-8) 的报告导航器中复制并粘贴错误日志。当问题更新时,我可能能够提供更多见解。 【参考方案1】:

我会在他们的website 上查看 AWS 的设置。他们甚至有一个部分详细介绍了如何使用 Swift ios9。

除其他外,如果您使用的是 Frameworks 手动集成,请确认步骤 4 已完成。

在 Target 的 Build Phases 选项卡下,单击 左上角,然后选择新建运行脚本阶段。然后设置构建 阶段如下。确保此阶段低于嵌入框架 阶段:

外壳/bin/sh

重击 "$BUILT_PRODUCTS_DIR/$FRAMEWORKS_FOLDER_PATH/AWSCore.framework/strip-frameworks.sh"

在构建日志中显示环境变量:选中 Run script only when 安装:未选中

输入文件:空输出文件:空

您可能希望安装和使用 Carthage 来简化此操作。前往Homebrew website,然后在安装自制软件后,您将从命令行运行 brew install carthage。之后返回上面的链接并按照迦太基的说明进行操作。

其次,我将再次演练Apple Documentation 上的使用桥接头文件,以查看是否有任何边缘情况适用,并作为健全性检查。

第三,如果这不起作用,我会尝试创建一个空的 Swift 项目,然后使用上述技术之一再次完成这些步骤。您的项目文件中的一项或多项设置可能有问题,或者文件本身可能已损坏。

顺便说一句 - 产品捆绑包标识符可能应该遵循 com.yourdomain.YourProductName 的约定。

【讨论】:

嗨 Tommie,这是一个很棒的解决方案,很高兴知道,但我使用的是 AirWatch 框架而不是 Amazon Web Services。无论如何,我都会遵循这个过程,并会告诉你进展如何【参考方案2】:

你不应该使用桥头。只需在您使用它的 swift 文件中使用import AWSDK

【讨论】:

以上是关于将 Objective C 框架导入我的 Swift 项目后,我的项目无法识别桥接文件中的头文件的主要内容,如果未能解决你的问题,请参考以下文章

将 Objective-C 框架(CocoaPod)导入 Swift?

将Swift类导入Objective c [复制]

是否可以在 Objective c 中使用 AVFoundation 框架绘制网格线

IOS项目目标中的多个Objective C桥接头

Xcode 8 Objective-c项目导入第三方swift框架(以Charts框架为例)

无法将 iSpeech 导入我的 iOS Swift 项目