提问人:Vishal S 提问时间:11/23/2022 更新时间:5/11/2023 访问量:161
使用 Swift 和 Pod 的通用 SDK
Common SDK Using Swift and Pods
问:
嗨,我想为 3 个项目创建一个具有相同功能的通用 SDK,但要创建该 SDK,我们需要使用一些 pod 和桥接头文件 我们遇到了如何使用 pod 和桥接标头配置该 SDK 的问题,该标头用于所有 3 个应用程序
请帮助我,我们如何才能做到这一点。
我试图添加带有桥接标头的 pod,但有些 pod 和桥接标头不起作用
答:
2赞
Jevin Patel
11/30/2022
#1
您可以使用 Pod 和第三方库创建框架项目。
注意:不能在框架中使用桥接标头。
有 2 种解决方案。1.伞头 2. 模块映射
解决方案 1(伞形标题):
- 若要包含所需的 Obj-C 标头,需要将其设置为“公共”:在项目资源管理器(左窗格)中选择它,并将属性“目标成员资格”(左侧 - 检查员窗格)从“项目”更改为“公共”。
[对象会员:公众]
https://i.stack.imgur.com/P26rx.png
- 打开 umbrella 标头 (.h) 并将所需的标头导入为:
[在伞形标题中导入标题]
https://i.stack.imgur.com/WEsLG.png)
这有效地使此标头公开,并可供您自己的框架和使用它的任何人使用。
注意:如果将标头导入为本地文件,即用引号括起来,例如 #import“objc-header.h”,则可能会遇到编译器错误,提示您正在尝试包含非模块化标头。
解决方案 2(模块映射):
在项目的根目录中创建一个名为 module.modulemap 的文件,其中包含以下内容:
[模块.模块映射]
framework module FrameworkName {
umbrella header "FrameworkName.h"
header "objc-header.h"
export *
module * { export * }
}
如果你想让 objc-header.h 中的定义对框架的用户保持私有,你可以添加私有限定符,如下所示:
// ...
private header "objc-header.h"
// ...
在“构建设置”中,将“模块映射文件”设置为“module.modulemap”
清理构建目录 (⇧⌘K) 并构建项目 (⌘B)
评论