Swift 私有庫制作教程

本篇文章講的是 如何制作一個組件。

一、組件的創(chuàng)建

1、首先我們來為項目創(chuàng)建一個公共基礎(chǔ)三方庫 組件 MCBaseThirdLibrary。
  • 拉取模版
    我們將創(chuàng)建在桌面上的一個名為 Demo 文件夾中。通過終端進(jìn)入到該文件夾下,然后輸入命令:
pod lib create MCBaseThirdLibrary

這個命令會為了拉取 Pod 的 基礎(chǔ)模板。拉取之后,還會通過詢問的形式為你配置一些東西:

// 作用的平臺
What platform do you want to use?? [ iOS / macOS ]
 > iOS

// 語言環(huán)境
What language do you want to use?? [ Swift / ObjC ]
 > ObjC

// 是否需要一個 demo 用來測試組件
Would you like to include a demo application with your library? [ Yes / No ]
 > Yes

Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > None

Would you like to do view based testing? [ Yes / No ]
 > Yes
  • podspec 文件
    1、打開索引文件 MCBaseThirdLibrary.podspec ,我們的組件還依賴其他的組件,又或者是三方庫。我們通過 s.dependency 字段去設(shè)置,多個庫可以分開寫多次,然后執(zhí)行pod install,執(zhí)行后的效果如下圖:
    image.png

    2、該文件為你的組件自動配置了一些基本的信息,當(dāng)然這些信息是需要你根據(jù)情況修改的,更多的配置你可以搜索相關(guān)文檔。注意:這里的 Git 地址目前是找不到的,后期需要自己關(guān)聯(lián)。

3、podspec 文件中 s.source_files = 'LLNetworking/Classes/*/' 指代共享的資源路徑,我們需要將共享的文件放到這里來。

image.png

  • Example 工程
    1、項目文件目錄中存在一個名為 Example 的工程,這個工程是你選擇 Would you like to include a demo application with your library? 中選擇 Yes 時為你添加的,這個還是很有用的,在你開發(fā)過程中可以通過它來集成測試組件功能的正確性、完整性。 我們先打開這個 Example 來看下:


    image.png

這個 Example 已經(jīng)為你的組件創(chuàng)建了索引文件 podspec,并且集成了該組件。我們來看下 Example 的 Podfile 的內(nèi)容:

use_frameworks!

platform :ios, '10.0'

target 'MCBaseThirdLibrary_Example' do
  pod 'MCBaseThirdLibrary', :path => '../'

  target 'MCBaseThirdLibrary_Tests' do
    inherit! :search_paths

    pod 'FBSnapshotTestCase' , '~> 2.1.4'
  end
end

其中為你集成了一個測試用例 pod 'FBSnapshotTestCase',目前可以忽略。

我們可以看到: pod 'MCBaseThirdLibrary', :path => '../' 這一句,path 路徑指向了本地路徑,對應(yīng) MCBaseThirdLibrary 主目錄下:

2、下圖選中的文件夾下,一個存放你的各種類文件,一個存放圖片資源等。我們打開組件的目錄查看,可以看到這里已經(jīng)有了名為 ReplaceMe 的文件了,這暗示你用共享文件替換它。


image.png
  • 在Example 里 使用三方依賴庫
    image.png

    image.png

    后續(xù)請看參考
?著作權(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)容

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