本篇文章講的是 如何制作一個組件。
一巩检、組件的創(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í)行后的效果如下圖:
2、該文件為你的組件自動配置了一些基本的信息夹姥,當(dāng)然這些信息是需要你根據(jù)情況修改的杉武,更多的配置你可以搜索相關(guān)文檔。注意:這里的 Git 地址目前是找不到的辙售,后期需要自己關(guān)聯(lián)轻抱。
3、podspec 文件中 s.source_files = 'LLNetworking/Classes/*/' 指代共享的資源路徑旦部,我們需要將共享的文件放到這里來祈搜。
-
Example 工程
1、項目文件目錄中存在一個名為 Example 的工程士八,這個工程是你選擇 Would you like to include a demo application with your library? 中選擇 Yes 時為你添加的容燕,這個還是很有用的,在你開發(fā)過程中可以通過它來集成測試組件功能的正確性婚度、完整性蘸秘。 我們先打開這個 Example 來看下:
這個 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 的文件了柑肴,這暗示你用共享文件替換它。
- 在Example 里 使用三方依賴庫
后續(xù)請看參考