iOS 組件化

一、創(chuàng)建遠(yuǎn)程索引庫(kù)

1算墨、我們先在GitHub上創(chuàng)建一個(gè)organization
image

2宵荒、添加一個(gè)遠(yuǎn)程索引庫(kù),填寫(xiě)相關(guān)信息

image

3、創(chuàng)建本地索引庫(kù)报咳,并與遠(yuǎn)程索引庫(kù)做關(guān)聯(lián)

a侠讯、打開(kāi)終端,pod repo add 本地索引庫(kù)的名字 遠(yuǎn)程索引庫(kù)的地址
例如:pod repo add JerryNetworkManager https://github.com/JerryYJL/JerryNetworkManager.git

b暑刃、pod repo查看是否創(chuàng)建成功

二厢漩、創(chuàng)建組件

1、開(kāi)始創(chuàng)建組件

a岩臣、cd 到指定目錄溜嗜,然后pod lib create 組件名
例如 pod lib create JerryNetworkManager
b、而后填上項(xiàng)目相關(guān)信息架谎,便能成功創(chuàng)建組件

2炸宵、目錄相關(guān)
image
a、podspec文件

該文件是組件的核心配置中心谷扣,看一下podspec語(yǔ)法

Pod::Spec.new do |s|
#  組件名
  s.name             = 'JLNetworkingManager'
#  版本號(hào)土全,與tag標(biāo)簽對(duì)應(yīng)
  s.version          = '0.1.5'
#  組件的描述
  s.summary          = 'A short description of JLNetworking.'

# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the description between the DESC delimiters below.
#   * Finally, don't worry about the indent, CocoaPods strips it!

  s.description      = <<-DESC
TODO: Add long description of the pod here.
                       DESC

#  組件所在的遠(yuǎn)程倉(cāng)庫(kù)
  s.homepage         = 'https://github.com/JLNetWorking/JLNetworking'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
#  開(kāi)源協(xié)議
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
#  作者信息
  s.author           = { 'Jerry' => '110*****@qq.com' }
#  git地址,版本號(hào)
  s.source           = { :git => 'https://github.com/JLNetWorking/JLNetworking.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

#  支持的iOS最低版本
  s.ios.deployment_target = '11.0'
#  指定Swift編譯版本
  s.swift_version = "5.0"
#  內(nèi)核設(shè)置
  s.pod_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 armv7 arm64' }
#  必備項(xiàng)会涎,代碼源文件地址裹匙,如果有多個(gè)目錄下則用逗號(hào)分開(kāi),否則"public_header_files"等不可用
  s.source_files = 'JLNetworking/Classes/**/*'

#  公開(kāi)頭文件地址
  # s.public_header_files = 'Pod/Classes/**/*.h'
#  所需的系統(tǒng)framework,多個(gè)用逗號(hào)隔開(kāi)末秃,不需要后綴名
  # s.frameworks = 'UIKit', 'MapKit'
#  資源路徑
  s.resource_bundles = {
    'JLNetworkingManager' => ['JLNetworkingManager/Assets/**/*']
  }
#  依賴(lài)第三方
  s.dependency 'Moya/RxSwift'
  s.dependency 'RxCocoa'
  s.dependency 'HandyJSON'
  s.dependency 'SwiftyJSON'
  s.dependency 'SnapKit'

end

b概页、example文件,主要寫(xiě)demo相關(guān)

這個(gè)一般都是寫(xiě)demo练慕,給別人看這個(gè)組件是怎么用的惰匙,還有跑起來(lái)是啥效果之類(lèi)的

c、Podfile文件

這里可以導(dǎo)入你的demo需要的第三方贺待,且不會(huì)引入到你的組件里面

use_frameworks!

platform :ios, '11.0'

target 'JLNetworking_Example' do
  pod 'JLNetworkingManager', :path => '../'

  target 'JLNetworking_Tests' do
    inherit! :search_paths
  end
end

d徽曲、組件的核心內(nèi)容

這里就可以開(kāi)始你的代碼秀了

3零截、上傳

git add .

git commit -m 'xxx'

git remote add origin https://github.com/JLNetWorking/JLNetworking.git

git push origin master

git tag 版本號(hào)(需與podspec中的版本號(hào)一致)

git push --tags

4麸塞、podspec驗(yàn)證

pod spec lint --verbose --allow-warnings --sources='https://github.com/JLNetWorking/JLNetworking.git'

解釋

--verbose:打印錯(cuò)誤

--allow-warnings:允許警告,默認(rèn)有警告的podspec會(huì)驗(yàn)證失敗

--sources:如果依賴(lài)了其他不包含在官方specs里的pod,則用它來(lái)指明源涧衙,比如依賴(lài)了某個(gè)私有庫(kù)哪工。多個(gè)值以逗號(hào)分隔

5、推送

推送分為2種情況弧哎,一個(gè)是私有庫(kù)的推送雁比,例如公司自己的gitLabel;第二個(gè)是公有庫(kù)撤嫩,例如前面的GitHub

a偎捎、私有庫(kù)的推送

私有庫(kù)的推送比較直接

pod repo push JLNetworking JLNetworking.podspec --verbose --allow-warnings --sources=https://github.com/JLNetWorking/JLNetworking.git

b、公有庫(kù)的推送

公有庫(kù)的推送就比較麻煩,因?yàn)樾枰扑偷絚ocoapods茴她,所以第一次推送需要注冊(cè)賬號(hào)

注冊(cè)賬號(hào)
pod trunk register 郵箱 '名字' --description='macbook air' --verbose
注冊(cè)完會(huì)收到一份郵件寻拂,需要點(diǎn)擊驗(yàn)證,驗(yàn)證完之后可以查看個(gè)人信息
pod trunk me
如果信息正確丈牢,就可以推送了
pod repo push JLNetworking JLNetworking.podspec --verbose --allow-warnings --sources=https://github.com/JLNetWorking/JLNetworking.git

5祭钉、驗(yàn)證

pod search JLNetworkingManager
如果沒(méi)有搜到,可能就是本地倉(cāng)庫(kù)沒(méi)有更新

更新repo庫(kù)己沛,然后再搜
pod repo update

pod組件就完成了慌核,下一篇開(kāi)始主項(xiàng)目跟組件的交流

原鏈接:http://www.reibang.com/p/2b9e6cf0191f

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市申尼,隨后出現(xiàn)的幾起案子垮卓,更是在濱河造成了極大的恐慌,老刑警劉巖晶姊,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扒接,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡们衙,警方通過(guò)查閱死者的電腦和手機(jī)钾怔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)供炎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)匪补,“玉大人棕兼,你說(shuō)我怎么就攤上這事仁堪∧〔欤” “怎么了芬萍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵脓杉,是天一觀的道長(zhǎng)信粮。 經(jīng)常有香客問(wèn)我馋袜,道長(zhǎng)男旗,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任欣鳖,我火速辦了婚禮察皇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘泽台。我一直安慰自己什荣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布怀酷。 她就那樣靜靜地躺著稻爬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蜕依。 梳的紋絲不亂的頭發(fā)上桅锄,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天琉雳,我揣著相機(jī)與錄音,去河邊找鬼友瘤。 笑死咐吼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的商佑。 我是一名探鬼主播锯茄,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼茶没!你這毒婦竟也來(lái)了肌幽?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抓半,失蹤者是張志新(化名)和其女友劉穎喂急,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體笛求,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡廊移,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了探入。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狡孔。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蜂嗽,靈堂內(nèi)的尸體忽然破棺而出苗膝,到底是詐尸還是另有隱情,我是刑警寧澤植旧,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布辱揭,位于F島的核電站,受9級(jí)特大地震影響病附,放射性物質(zhì)發(fā)生泄漏问窃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一完沪、第九天 我趴在偏房一處隱蔽的房頂上張望域庇。 院中可真熱鬧,春花似錦丽焊、人聲如沸较剃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至惰拱,卻和暖如春雌贱,著一層夾襖步出監(jiān)牢的瞬間啊送,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工欣孤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留馋没,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓降传,卻偏偏與公主長(zhǎng)得像篷朵,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子婆排,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容