創(chuàng)建 Swift Cocoapods 和 Framework 相關(guān)問題

Cocoapods 創(chuàng)建私有庫網(wǎng)上的文章已經(jīng)很多了, 但是涉及到針對 Swift 遇到的問題相關(guān)文章很少,這里針對 Swift 創(chuàng)建包含 Oc 代碼的私有庫和 Framework 等問題做個梳理

創(chuàng)建流程不細(xì)說, 網(wǎng)上相關(guān)文章很多了

[方式一]

pod lib create xxxx

根據(jù)提示選擇 Swift 語言, 選擇包括 Example 項目

[方式二]

或創(chuàng)建一個 Framework 項目, 命令行輸入

pod spec create xxxx

創(chuàng)建 pod 遇到的一些問題

  1. pod 內(nèi)部需要引用 oc 的 .framework

在 swift 項目中, 引用 oc framework 只需添加一個 Bridging-Header.h 橋接文件即可引入, 而 swift Framework 中并不支持此種方式, 為解決這種問題, 可通過創(chuàng)建 .moudlemap 文件解決此問題, moudlemap 文件就是對一個框架,一個庫的所有頭文件的結(jié)構(gòu)化描述, 我們創(chuàng)建的 Framework 也會自動生成一個 moudlemap 文件

需要注意的是, module 名稱需和 Framework 名稱相同

module MyOcFramework {
    header "myOcFramework.framework/Headers/myOcFrameworkHeader.h"
    export *
}
import MyOcFramework

class Person {
  ......  
}

如果只是某個 .h 文件也是同理

module MyOcH {
    header "MyOcH.h"
    export *
}

2.找不到某個 moudlemap 創(chuàng)建的 framework name

提示找不到 framework 說明 moudlemap 文件路徑錯誤, 使用[方式一]創(chuàng)建的 pod 庫需要在 .podspec 里指定 .modulemap 文件路徑

s.preserve_paths = 'xxName/***/module.modulemap'

3.如果在 pod 庫中依賴一些靜態(tài) pod 庫,編譯會失敗, 這種情況只能使用 Framework 方式引入, 參照問題1

pod 制作成 Framework

1.pod 可使用 package 插件把 pod 庫制作成 Framework, 但是如果是 swift 會報錯

 **/**.modulemap not found

目前還沒有發(fā)現(xiàn)解決方法, github 上已提 issues

使用手動合并的方式目前沒有此問題, 具體模擬器和真機合并流程網(wǎng)上文章很多, 在此不再贅述

2.制作的 Framework 啟動后報錯

swift 制作的 Framework 添加到 General - Embedded Binaries

3.包含 oc Framework 并創(chuàng)建過 .moudlemap 的 Framewrok 編譯報錯找不到 .moudlemap 定義的框架名稱

此問題是由于封裝的 Framework 未包含 .moudlemap, 因此在框架內(nèi)部找不到定義的名稱, 如果只是封裝成 pod 引入項目并沒有此問題, 而封裝成 Framework 需定義一份 .moudlemap, 并在 Build Settings - Swift Compiler Search Paths -import Paths 中指定 .moudlemap 文件路徑

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,213評論 3 119
  • 湖岸環(huán)花柳,橋亭映碧波。 樓臺煙雨翠,何日再歡歌。
    文貝閱讀 621評論 67 84
  • 遠(yuǎn)遠(yuǎn)的 我聽見 一個來自夢境之外的 聲音 是你的腳步 輕盈的 如晚秋的一片紅楓 凋落 是我的幻想 零星的 如...
    蓬年閱讀 279評論 4 6
  • 一、場景 前后端分離spa頁面權(quán)限設(shè)置 二、技術(shù)棧 vue全家桶 三、實現(xiàn)效果 四、實現(xiàn)原理 vueRouter控...
    芒果加奶閱讀 4,770評論 7 2
  • 拿出手機,下一個智聯(lián)招聘,點進去,界面上出現(xiàn):職位、公司搜索??紤]了幾十秒,沒有想去的公司,也沒有特別喜歡的職業(yè),...
    Hey你好啊閱讀 249評論 3 1

友情鏈接更多精彩內(nèi)容