Swift 桥接头文件不适用于 use_frameworks
Swift bridging header file won't work with use_frameworks
我正在尝试使用 GoogleidentityToolkit 库来处理登录。我启用use_frameworks!在我的 pod 文件上,但是找不到模块 GITkit。我想弄清楚发生了什么。据我所知,如果你使用 "use_frameworks" 你不需要创建任何桥接头文件,因为 cocoapods 将库编译成一个模块,所以稍后你可以像往常一样导入你的 *.swift 个文件。
在 Swift 中使用 Google Identity Toolkit 库需要什么?
这个问题是在 CocoaPods 1.0.0 发布一周后提出的(当时 CocoaPods 0.39.0 还很流行),Google Identity Toolkit 的可用版本是 1.1。 3 从 2015 年开始,但在 Google I/O 2016.
之后弃用了 Firebase 身份验证 (pod 'FirebaseUI/Auth'
)
- 将新文件添加到 Xcode(文件 > 新建 > 文件),然后 select“源”并单击“头文件”。
- 将文件命名为“YourProjectName-Bridging-Header.h”。
- 创建文件。
- 导航到您的项目构建设置并找到“Swift 编译器 – 代码生成”部分。您可能会发现在搜索框中输入“Swift Compiler”以缩小结果范围会更快。注意:如果您没有“Swift Compiler – Code Generation”部分,这意味着您可能还没有将任何 Swift classes 添加到您的项目中。添加 Swift 文件,然后重试。
- 在“Objective-C Bridging Header”旁边,您需要添加头文件的 name/path。如果您的文件位于项目的根文件夹中,只需将头文件的名称放在那里。示例:“ProjectName/ProjectName-Bridging-Header.h”或简单的“ProjectName-Bridging-Header.h”。或者,只需将桥接头文件从查找器拖放到此空字段。这样会自动添加桥接头文件的路径。
- 打开您新创建的桥接头并使用#import 语句导入您的Objective-C classes。此文件中列出的任何 class 都可以从您的 swift classes 访问。
A) 创建一个名为 Header 的桥接文件
"ProjectName-Bridging-Header.h" 在项目的根文件夹中。
B) 转到项目构建设置并设置以下值:
- "Install objective-c compatibility header" : 是
- "Objective-C Bridging Header" : 你的桥接路径 header(例如 "ProjectName/ProjectName-Bridging-Header.h"
之后您可以使用 header 文件导入您想要在 swift 代码中使用的所有 ObjectiveC 文件。
注意:如果需要,在资源 headers 和 Swift 编译器搜索部分中将路径设置为递归路径。
首先在您的项目根级别创建名为 "projectname-bridging-header.h" 的桥接头文件。
现在在构建设置中设置桥接头文件路径及其 objc 兼容性头文件。
完成后,清理并构建您的项目,它的工作正常。
我发现的最简单的方法是在 XCode 中创建一个伪造的 .swift
文件。这应该会提示自动创建桥接头。
- 文件 > 新建 > 文件...
- 对于文件类型,选择Swift。
- 允许Xcode手动创建Swift桥接头。
- 删除您最初创建的
.swift
文件。
Swift 4 和 Xcode 9.3
创建桥接头文件:
- Xcode> File/New.../File> 头文件
- 将文件命名为 "ProjectName-bridging-header.h"
- 保存到项目文件夹的根目录
Xcode> 转到构建设置(在项目资源管理器窗格中 select 最上面的项目,应该是您的项目名称,在右侧窗格中 select "Build Settings" 主题)
- 在 "Build Setting" 下面确保 "All" 和 "Combined" 是 selected
- 在搜索框中键入 "swift compiler" 并找到 "Objective-C Bridging Header" 项
- 折叠它并双击它右侧的编辑
- 在上面插入1.的文件名 -> "ProjectName/ProjectName-bridging-header.h"(如果桥接文件保存在工程中,请注意文件夹路径文件夹)
包括需要的#import
None 以上答案对我有用或不够精确。
在 Xcode 11.4 (Swift 5.2) 这个解决方案对我有用:
1. 在项目的根目录中创建一个新的 header 文件。我不确定文件的名称是否真的重要,但 Apple 的 auto-generated 桥接 header 文件被命名为“ProjectName-Bridging-Header.h”。
2. 将您需要的所有导入添加到新创建的文件中。
3. 在 Project Navigator 中单击您的项目名称。
4. 在最上面的栏中选择“Build settings”,然后在稍低的栏中选择 全部 和 合并。
5.右上角搜索“Swift编译器”
6.找到“Swift Compiler-General”选项卡,展开并double-click右边“Objective-C 桥接 Header”的一侧。
7. 您现在需要做的就是将您创建的桥接 header 文件拖到 pop-up window然后点击进入。大功告成!
*请记住,每次项目的直接路径更改时,您都必须更新桥接 Header 的路径
我正在尝试使用 GoogleidentityToolkit 库来处理登录。我启用use_frameworks!在我的 pod 文件上,但是找不到模块 GITkit。我想弄清楚发生了什么。据我所知,如果你使用 "use_frameworks" 你不需要创建任何桥接头文件,因为 cocoapods 将库编译成一个模块,所以稍后你可以像往常一样导入你的 *.swift 个文件。
在 Swift 中使用 Google Identity Toolkit 库需要什么?
这个问题是在 CocoaPods 1.0.0 发布一周后提出的(当时 CocoaPods 0.39.0 还很流行),Google Identity Toolkit 的可用版本是 1.1。 3 从 2015 年开始,但在 Google I/O 2016.
之后弃用了 Firebase 身份验证 (pod 'FirebaseUI/Auth'
)
- 将新文件添加到 Xcode(文件 > 新建 > 文件),然后 select“源”并单击“头文件”。
- 将文件命名为“YourProjectName-Bridging-Header.h”。
- 创建文件。
- 导航到您的项目构建设置并找到“Swift 编译器 – 代码生成”部分。您可能会发现在搜索框中输入“Swift Compiler”以缩小结果范围会更快。注意:如果您没有“Swift Compiler – Code Generation”部分,这意味着您可能还没有将任何 Swift classes 添加到您的项目中。添加 Swift 文件,然后重试。
- 在“Objective-C Bridging Header”旁边,您需要添加头文件的 name/path。如果您的文件位于项目的根文件夹中,只需将头文件的名称放在那里。示例:“ProjectName/ProjectName-Bridging-Header.h”或简单的“ProjectName-Bridging-Header.h”。或者,只需将桥接头文件从查找器拖放到此空字段。这样会自动添加桥接头文件的路径。
- 打开您新创建的桥接头并使用#import 语句导入您的Objective-C classes。此文件中列出的任何 class 都可以从您的 swift classes 访问。
A) 创建一个名为 Header 的桥接文件 "ProjectName-Bridging-Header.h" 在项目的根文件夹中。
B) 转到项目构建设置并设置以下值:
- "Install objective-c compatibility header" : 是
- "Objective-C Bridging Header" : 你的桥接路径 header(例如 "ProjectName/ProjectName-Bridging-Header.h"
之后您可以使用 header 文件导入您想要在 swift 代码中使用的所有 ObjectiveC 文件。
注意:如果需要,在资源 headers 和 Swift 编译器搜索部分中将路径设置为递归路径。
首先在您的项目根级别创建名为 "projectname-bridging-header.h" 的桥接头文件。
现在在构建设置中设置桥接头文件路径及其 objc 兼容性头文件。
完成后,清理并构建您的项目,它的工作正常。
我发现的最简单的方法是在 XCode 中创建一个伪造的 .swift
文件。这应该会提示自动创建桥接头。
- 文件 > 新建 > 文件...
- 对于文件类型,选择Swift。
- 允许Xcode手动创建Swift桥接头。
- 删除您最初创建的
.swift
文件。
Swift 4 和 Xcode 9.3
创建桥接头文件:
- Xcode> File/New.../File> 头文件
- 将文件命名为 "ProjectName-bridging-header.h"
- 保存到项目文件夹的根目录
Xcode> 转到构建设置(在项目资源管理器窗格中 select 最上面的项目,应该是您的项目名称,在右侧窗格中 select "Build Settings" 主题)
- 在 "Build Setting" 下面确保 "All" 和 "Combined" 是 selected
- 在搜索框中键入 "swift compiler" 并找到 "Objective-C Bridging Header" 项
- 折叠它并双击它右侧的编辑
- 在上面插入1.的文件名 -> "ProjectName/ProjectName-bridging-header.h"(如果桥接文件保存在工程中,请注意文件夹路径文件夹)
包括需要的#import
None 以上答案对我有用或不够精确。 在 Xcode 11.4 (Swift 5.2) 这个解决方案对我有用:
1. 在项目的根目录中创建一个新的 header 文件。我不确定文件的名称是否真的重要,但 Apple 的 auto-generated 桥接 header 文件被命名为“ProjectName-Bridging-Header.h”。
2. 将您需要的所有导入添加到新创建的文件中。
3. 在 Project Navigator 中单击您的项目名称。
4. 在最上面的栏中选择“Build settings”,然后在稍低的栏中选择 全部 和 合并。
5.右上角搜索“Swift编译器”
6.找到“Swift Compiler-General”选项卡,展开并double-click右边“Objective-C 桥接 Header”的一侧。
7. 您现在需要做的就是将您创建的桥接 header 文件拖到 pop-up window然后点击进入。大功告成!
*请记住,每次项目的直接路径更改时,您都必须更新桥接 Header 的路径