如果想讓項(xiàng)目可以根據(jù)自己的需求進(jìn)行源代碼切換?;蛘呤沟庙?xiàng)目達(dá)到低耦合的組計(jì)劃,首頁(yè)制作本地pod庫(kù)是第一步,我也曾遇到這個(gè)問(wèn)題,網(wǎng)上搜索之后發(fā)現(xiàn)自己的第一步找的很正確,所以為了自己以后方便找,所以特意在自己描述一下這個(gè)過(guò)程。
我用這種方式是本身我之前的庫(kù)內(nèi)容比較多,想要實(shí)現(xiàn)組件化管理,只能用下沉庫(kù)的方式,如果是一個(gè)新項(xiàng)目,直接 pod lib create 方式創(chuàng)建。
參考的文章在這里:iOS使用pod創(chuàng)建本地庫(kù)
創(chuàng)建pod本地庫(kù)
1.我們需要用pod來(lái)管理我們的項(xiàng)目,如果之前沒(méi)有用pod來(lái)管理,以下方法可以幫助你切換到pod管理項(xiàng)目。
//首先cd到自己的工程目錄下面
cd Desktop/TTProject/
//pod init 初始化可以自動(dòng)創(chuàng)建一個(gè)podfile,如果本身即是pod的管理那就不需要了
pod init
2.直接在工程目錄下面創(chuàng)建podspec文件(podspec文件必須和你的工程名字一致)
pod spec create TTProject
創(chuàng)建成功之后,打開編輯podspec文件,可以用文本編輯器打開,后期生成workspace就可以直接在xcode打開編輯,一些注釋信息可以不要,剩下如下信息:
Pod::Spec.new do |spec|
spec.name = "TTProject"
spec.version = "0.0.1"
spec.summary = "A short description of TTProject."
spec.description = "組件化"
spec.homepage = "http://aaa/TTProject"
spec.license = "MIT"
spec.author = { "huweihong" => "huweihong@miao.cn" }
spec.source = { :git => "http://aaa/TTProject.git", :tag => "#{spec.version}" }
end
如果想要接收參數(shù)來(lái)控制代碼可以向上面的代碼內(nèi)加入部分代碼,代碼如下:
#這個(gè)t可以是Jenkins上shell傳出來(lái)的參數(shù)
$lib = ENV['t']
if $lib == "1"
puts "this is choice 1"
puts $lib
spec.source_files = "TTProject/Classes/COO/*.h"
elsif $lib == "2"
puts "this is choice 2"
spec.source_files = "TTProject/Classes/COO/*.m"
elsif $lib == "3"
puts "this is choice 3"
spec.source_files = "TTProject/Classes/COO/*"
else
puts "this is default choice"
spec.source_files = "TTProject/Classes/*"
end
具體參數(shù)的解釋:
1、spec.summary 賦值內(nèi)容隨便寫
2.spec.description 賦值內(nèi)容隨便寫
3.去除這個(gè)文件里所有跟EXAMPLE相關(guān)的內(nèi)容,比如s.homepage。注意,這里內(nèi)容都不能為空,不然會(huì)出警告、
4.新建LICENSE文件,如圖所示
新建LICENSE文件,內(nèi)容隨你,我這里選了MIT(如果是從git上拉去下來(lái)的項(xiàng)目可以選擇帶有LICENSE文件就不用創(chuàng)建了)
The MIT License (MIT)Copyright ?2018Permissionishereby granted, free of charge, to any person obtaining a copy of this softwareandassociated documentation files (the “Software”), to dealinthe Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,and/orsell copies of the Software,andto permit persons to whom the Softwareisfurnished to do so, subject to the following conditions:The above copyright noticeandthis permission notice shall be includedinall copiesorsubstantial portions of the Software.THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

5.配置LICENSE :spec.license ="LICENSE"
6.修改路徑:source改為這樣,tag是你的版本號(hào),你隨意。
7.創(chuàng)建本地文件,可以在自己的工程目錄下和工程目錄一樣名字的文件夾建立一個(gè)Classes文件夾
我們可以看到
spec.source_files = "TTProject/Classes/COO/*.h"
這前面對(duì)應(yīng)的文件夾都是Classes,所我們建立Classes文件夾,如圖所示。這個(gè)文件夾不一定得叫Classes,如果叫別的你就得去改source_files和exclude_files的配置。

8.可以在Classes中放入自己建立的文件我創(chuàng)建了

9.填寫Podfile:你看這里的路徑是你自己填寫的,所以你這個(gè)文件夾用別的名字也行。
pod 'TTProject', :path =>'./'
驗(yàn)證本地庫(kù)
1.進(jìn)行pod驗(yàn)證
pod lib lint
如果出現(xiàn)以下錯(cuò)誤需要把錯(cuò)誤問(wèn)題解決了。
2.出現(xiàn)警告可以忽略
pod lib lint --allow-warnings
提示: TTProject passed validation. 就是本地通過(guò)驗(yàn)證了
拉取本地庫(kù)
pod install --verbose --no-repo-update
這里只拉去Coo文件夾下的兩個(gè)文件,所以只顯示兩個(gè)文件

切換文件路徑spec.source_files
#切換spec.source_files
spec.source_files = "TTProject/Classes/*"
然后 pod update --no-repo-update

接下來(lái)還會(huì)有文章說(shuō)明在podspec中加入判斷配合終端的使用來(lái)切換本地的文件。