iOS私有庫(kù)搭建記錄

準(zhǔn)備工作

  • 安裝cocoapod (已安裝請(qǐng)忽略玷氏,未安裝請(qǐng)找度娘)
  • 創(chuàng)建私有的spection存放地址
① http://xxxxxxx/TJRepo.git
  • 創(chuàng)建工具類代碼存放地址
② http://xxxxxxx/TJKit.git

1. 在本地創(chuàng)建spec倉(cāng)庫(kù)

打開終端,在終端輸入

# pod repo add [自定義的本地私有庫(kù)名字] [第一個(gè)git倉(cāng)庫(kù)地址]
如: pod repo add TJRepo http://xxxxxxx/TJRepo.git
image.png

項(xiàng)目clone下來(lái)之后,在~/.cocoapods/repos/ 文件夾下就會(huì)多出一個(gè)MyRepo的文件夾卷要,這里就是我們即將存放本地podspec的倉(cāng)庫(kù)

image.png

2.配置源碼倉(cāng)庫(kù)

2.1 創(chuàng)建源碼倉(cāng)庫(kù)

這次要用到第二個(gè)git地址,首先我們需要?jiǎng)?chuàng)建一個(gè)空白文件夾【私有倉(cāng)庫(kù)Demo】独榴,然后 cd 到該文件目錄下執(zhí)行

pod lib create [倉(cāng)庫(kù)名字]
如:pod lib create TJKit
創(chuàng)建模板
成功情況

如果出現(xiàn)錯(cuò)誤請(qǐng)查看 Q1 是否符合你的情況

Pod私有庫(kù)創(chuàng)建成功僧叉。一般來(lái)說(shuō)創(chuàng)建成功會(huì)自動(dòng)打開項(xiàng)目

【私有倉(cāng)庫(kù)】文件夾下將會(huì)生成一個(gè)【TJKit】的文件夾,目錄結(jié)構(gòu)如下


目錄結(jié)構(gòu)

2.2 修改TJKit.podspec文件


# 基礎(chǔ)信息
Pod::Spec.new do |s|
  s.name             = 'TJKit' # 名字
  s.version          = '0.0.1' # 版本號(hào),需要跟我們上傳的tag號(hào)一致
  s.summary          = 'xxxx' #摘要棺榔,可自定義

# 描述 可自定義
  s.description      = <<-DESC
  xxxxx
                       DESC

#項(xiàng)目的主頁(yè)瓶堕,同瀏覽器地址
  s.homepage         = 'http://xxxxx/TJKit'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  
  s.author           = { '作者' => '您的郵箱' }
  # clone的地址
  s.source           = { :git => 'http://xxxxx/TJKit.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
  
  # 最低支持的iOS版本
  s.ios.deployment_target = '10.0'
  # 私有庫(kù)所在的文件目錄
  s.source_files = 'TJKit/Classes/**/*'
  
  # 關(guān)聯(lián)的圖片資源
  # s.resource_bundles = {
  #   'TJKit' => ['TJKit/Assets/*.png']
  # }

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  # s.dependency 'AFNetworking', '~> 2.3'
end

2.3 添加自己的代碼

把需要做成私有庫(kù)的源碼放到TJKit/Classes中,然后將原來(lái)的placeme.swift文件刪除,注意新文件中不能有依賴錯(cuò)誤

2.4 檢查設(shè)置是否正確

# 檢查命令
pod lib lint --allow-warnings --verbose
image.png

驗(yàn)證通過(guò)症歇,如遇驗(yàn)證不通過(guò)可按照提示進(jìn)行修改
問(wèn)題匯總請(qǐng)參考Q&A

2.5 將代碼同步到Git上

git add .
git commit -m "pod test"
git remote add origin http://xxxxxxx/TJKit.git
push origin master

2.6 添加tag并同步

# 0.0.1,對(duì)應(yīng) xxxxx.podspec 中的s.version
git tag -m "First Version" 0.1.0
git push --tags

2.7 向本地的Repo提交podspec文件

# pod repo push [第?一步私有庫(kù)名稱] [podspec?文件] 
如:pod repo push MyRepo TJKit.podspec

有警告是不會(huì)通過(guò)的郎笆,如果想忽略警告,或者查看詳情忘晤,可以在命令后添加以下參數(shù)

--verbose 查看詳情
--allow-warnings 警告忽略
上傳通過(guò)

成功了之后宛蚓,~/.cocoapods/repos/xxxx文件結(jié)構(gòu)如下:


image.png

如果不成功請(qǐng)查看Q2

2.8 更新倉(cāng)庫(kù)

pod repo update MyRepo

[圖片上傳失敗...(image-da805f-1562830213674)]

3.使用私有庫(kù)

xcode新建一個(gè)項(xiàng)目,在項(xiàng)目文件夾創(chuàng)建Podfile设塔,創(chuàng)建好之后添加:

pod "TJKit",:git=> 'http://xxxxxx/TJKit.git'

然后執(zhí)行pod install

Q&A

q1

.pod無(wú)法生成項(xiàng)目

錯(cuò)誤如下:

/Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:27:in `<module:BuildSettingsArraySettingsByObjectVersion>': undefined method `to_set' for #<Array:0x00007f9d7912bfb0> (NoMethodError)
Did you mean?  to_s
    from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:8:in `<class:XCBuildConfiguration>'
    from /Library/Ruby/Gems/2.3.0/gems/xcodeproj-1.5.8/lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb:4:in `<module:Object>'
    ...
    ...

解決方法:升級(jí)cocoapod

sudo gem install -n /usr/local/bin cocoapods

q2

Your configuration specifies to merge with the ref 'refs/heads/master'
from the remote, but no such ref was fetched.

項(xiàng)目沒(méi)有初始化, 這個(gè)時(shí)候git倉(cāng)庫(kù)是空的凄吏,需要我們?cè)趡/cocoapods/repo/xxxx 下添加一個(gè)初始文件,例如添加個(gè)readme.md

解決方法:
檢查./git/config 文件中g(shù)it地址是否正確
初始化項(xiàng)目闰蛔,執(zhí)行

git config --global user.name "git用戶名"
git config --global user.email "郵箱"

cd TJRepo
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末痕钢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子序六,更是在濱河造成了極大的恐慌任连,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件难咕,死亡現(xiàn)場(chǎng)離奇詭異课梳,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)余佃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門暮刃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人爆土,你說(shuō)我怎么就攤上這事椭懊。” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵氧猬,是天一觀的道長(zhǎng)背犯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)盅抚,這世上最難降的妖魔是什么漠魏? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮妄均,結(jié)果婚禮上柱锹,老公的妹妹穿的比我還像新娘。我一直安慰自己丰包,他們只是感情好禁熏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著邑彪,像睡著了一般瞧毙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寄症,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天宙彪,我揣著相機(jī)與錄音,去河邊找鬼瘸爽。 笑死您访,一個(gè)胖子當(dāng)著我的面吹牛铅忿,可吹牛的內(nèi)容都是我干的剪决。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼檀训,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼柑潦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起峻凫,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤渗鬼,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后荧琼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體譬胎,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年命锄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了堰乔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脐恩,死狀恐怖镐侯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情驶冒,我是刑警寧澤苟翻,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布韵卤,位于F島的核電站,受9級(jí)特大地震影響崇猫,放射性物質(zhì)發(fā)生泄漏沈条。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一诅炉、第九天 我趴在偏房一處隱蔽的房頂上張望拍鲤。 院中可真熱鬧,春花似錦汞扎、人聲如沸季稳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)景鼠。三九已至,卻和暖如春痹扇,著一層夾襖步出監(jiān)牢的瞬間铛漓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工鲫构, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浓恶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓结笨,卻偏偏與公主長(zhǎng)得像包晰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子炕吸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355