1. 编辑 .podspec 文件
记得添加 **s.swift_version = '5.0'**<br /> 官方文档:[https://guides.cocoapods.org/syntax/podspec.html#swift_versions](https://guides.cocoapods.org/syntax/podspec.html#swift_versions)<br />![image.png](https://cdn.nlark.com/yuque/0/2020/png/345290/1579408061639-e269257e-704f-4b6e-ac63-c71405b6b720.png#align=left&display=inline&height=746&name=image.png&originHeight=746&originWidth=1103&size=208439&status=done&style=none&width=1103)
2. 编辑 Objc 和 Swift 代码
对于 Swift 文件:
- 为了给 Objc 调用,类需要继承自 **NSObject**
- 为了给 Objc 调用,类和方法需要添加 **[@objc](#)** 修饰
- 为了将类、方法对外,需要为器添加 **public** 访问控制权限
对应 Objc 文件:
- 正常编码
不需要添加桥接文件,添加了也没用甚至会报错:
[ObjcSwiftMixed.podspec line: 22] error: using bridging headers with framework targets is unsupported
至于在项目中怎么引用到这些文件,继续往下看
3. 在 Objc 项目中使用
通过导入以下两个头文件,这两个文件都是在安装编译时自动生成的,项目就可以使用 ObjcSwiftMixed 了
#import <ObjcSwiftMixed/ObjcSwiftMixed-Swift.h>
#import <ObjcSwiftMixed/ObjcSwiftMixed-umbrella.h>
- 如果遇到下面的问题,你可能需要在 Build Settings / Add User-Defined Setting,添加 SWIFT_VERSION = 5.0
[!] Unable to determine Swift version for the following pods:
- `SnapKit` does not specify a Swift version and none of the targets (`oc-ui-demo`)
integrating it have the `SWIFT_VERSION` attribute set.
Please contact the author or set the `SWIFT_VERSION` attribute in
at least one of the targets that integrate this pod.
- 你可能还需要为项目添加桥接文件,创建 File.swift 的同时并创建 Bridging Header,File.swift 可以删除掉
- 运气好的话,上面两个问题都不会碰到
4. 在 Swift 项目中使用
5. 混编参考文章
Allow Non-modular Includes In Framework Modules => YES
unbrella header
module.modulemap
Build Options
Embedded Content Contains Swift Code => YES
Always Embed Swift Standard Libraries => YES
Defines Module => YES
public headers
cannot find Swift declaration for this class
6. 附件
[备注]:怎么屏蔽 swift 警告?