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: