本篇文章講的是 如何制作一個組件。
一、組件的創(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ù)請看參考



