Swift-Framework Error(一)桥接文件

摘要

Xcode 编译工程代码时,出现编译错误时除了红色图标外,还会附送几句英文文本。

常规操作拷贝英文文本,放到搜索框中找答案,但是读懂这几句话能事半功倍。

项目中如果有 OC 和 Swift 两种语言的代码,那么桥接文件(xx-Bridging.h)必然是要创建的,它作为桥梁,使得项目中的 OC 和 Swift 代码直接自由调用。对桥接文件感兴趣,给我留言,一定详细解答

错误

但是这种处理方式放到 Framework 中就失效,报错并返回 Error: using bridging headers with framework targets is unsupported。翻译过来就是Framework 中不支持桥接文件

难道 Framework 中的代码不可以同时存在 Swift 和 OC 两种代码吗?

解决

如果答案是不能同时存在,那肯定是要砸电脑了。但是如何解决呢?

借用名言,此路不通就换别的路。虽然不让用桥接文件,但是似乎发现Framework 文件中用一个 .h 文件,桥接文件也是 .h 文件,这绝不是巧合。

看着桥接文件在项目中的处理方式,处理它:

  1. Framework 项目中引入 OC 文件
  2. Framework 头文件(umbrella header 文件)引入 OC 的 .h 文件
  3. 项目工程的 Build Phases → Headers → Public 中添加 OC 的 .h 文件

解决!!!

总结

Framework 似乎是 APP 项目的缩小版,因为 APP 项目有的工程文件、plist 文件等它都有,但是 APP 项目为了保证自己的主宰地位,让一些处理方式只能在 APP 中使用。摆在 Framework 面前只有两条路,要不领会精神绕道走,要不就明确说:“我不行”,交给老大哥处理。

Tags: