iOS 私有庫的創(chuàng)建(本地)

 iOS 組件化必經(jīng)之路—創(chuàng)建私有庫,這里記錄一下創(chuàng)建過程,以及遇到的坑。
需要的知識點
  • it 相關(guān)指令
  • cocoaPod相關(guān)知識點(電腦正確安裝了pod)
  • ssh Git配置多個SSH-Key
準備工作
  1、有一個私有代碼倉庫(github、gitlab、碼云、騰訊云 )   
  2、創(chuàng)建兩個私有項目(一個存放索引、另外一個存放源代碼)

一、創(chuàng)建私有庫的索引庫

1、在碼云中創(chuàng)建私有庫的索引庫(拷貝項目路徑https://gitee.com/whityStyle/ZLRepo.git\給下一步使用備用)

創(chuàng)建私有庫的索引庫,這句話有些繞口,我們分開來看:

  • 私有庫:指的是我們真正放置組件代碼的地方。
  • 索引庫:存放spec文件的地方,用于索引到代碼的位置。

2、將創(chuàng)建的索引庫添加到本地cocoapods倉庫
 <1> cocoapods本地倉庫路徑(command + shift + G)
     $ ~/.cocoapods/repos 
 <2> 在本地添加一個自己的遠程索引庫(路徑為上一步拷貝的項目路徑)
     pod repo add ZLRepo https://gitee.com/whityStyle/ZLRepo.git

這時候在~/.cocoapods/repos目錄下會生成一個名為ZLRepo的文件夾,


二、制作組件

1、創(chuàng)建模版, 在指定的目錄下(最好固定方便以后修改)

  $ cd  ../../..指定的目錄
  $ pod lib create ZLDemoTool

通過該命令會自動創(chuàng)建一個模板工程,里面包含我們需要的索引文件,格式為spec,接下來通過該模板文件來制作我們自己的組件。

終端得到以下界面:


image.png

這里會詢問幾個問題(答案根據(jù)實際情況設(shè)置),分別是:
1、語言選擇
—— 教程選擇Objc,如果要做Swift私有庫,請選擇輸入Swift
2、是不是需要一個demo項目工程
? —— 教程選擇Yes,需要創(chuàng)建一個demo工程,建議創(chuàng)建一個demo工程
3、測試框架使用哪一個
? —— 教程選擇None
4、是不是需要做基本的測試
? —— 教程選擇Yes
5、類前綴是什么
? —— 教程輸入LAT


2、將我們自己的組件放入指定目錄

  • 將源碼文件復(fù)制到文件夾路徑:ZLDemoTool/ZLDemoTool/Classes下。
  • 資源文件放到Assets下。


    image.png

模板文件中會看到一個Development pods的文件夾,這個文件夾代表的是本地的組件庫,這里我們把Tool文件(也就是我們自己制作的組件)放在指定的文件夾,然后引入到工程中.
至此,我們的本地第三方組件已經(jīng)制作完成,現(xiàn)在可以通過在終端執(zhí)行pod install看看效果了(cd 到example文件夾下)!當(dāng)然,我們肯定不會局限于本地,接下來就是如何制作線上組件庫了!


3、將制作好的組件上傳至碼云
在項目工程文件下執(zhí)行g(shù)it相關(guān)指令,發(fā)布到git。

    $ git remote add origin https://git.oschina.net/ZLDemoTool/ZLDemoTool.git
    $ git add .
    $ git commit -a -m "初始化"
    $ git pull origin master --allow-unrelated-histories
    $ git push origin master

4、更改模板文件相關(guān)信息

image.png

我們打開Xcode工程,找到.podspec后綴的文件,更改s.summary,這個是顯示在pod search的簡短描述,s.version是版本號,我這里修改為0.0.1,下面再主要修改一個s.homepage和s.source中的地址為我們創(chuàng)建組件倉庫的地址即可!

#
# Be sure to run `pod lib lint ZLDemoTool.podspec' to ensure this is a
# valid spec before submitting.
#
# Any lines starting with a # are optional, but their use is encouraged
# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html
#

Pod::Spec.new do |s|
  s.name             = 'ZLDemoTool'
  s.version          = '0.0.1'
  s.summary          = 'ZLDemoTool use desc.'
  s.description      = <<-DESC
TODO: ZLDemoTool use desc.
                       DESC

  s.homepage         = 'https://gitee.com/whityStyle'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { '劉磊' => 'liulei10luojia@163.com' }
  s.source           = { :git => 'https://gitee.com/whityStyle/ZLDemoTool.git', :tag => s.version.to_s }

  s.ios.deployment_target = '8.0'

  s.source_files = 'ZLDemoTool/Classes/**/*'
  # s.public_header_files = 'Pod/Classes/**/*.h'
  s.frameworks = 'UIKit'

end


5、驗證spec文件

image.png
$ pod lib lint  --private
如果出現(xiàn)警告,可以將 
s.homepage   = '[https://gitee.com/Qinz_323/Tool](https://gitee.com/Qinz_323/Tool)'
改為
s.homepage   = '[https://gitee.com/Qinz_323](https://gitee.com/Qinz_323)'

驗證通過后的截圖

image.png

6、將修改的.podspec文件上傳到碼云

  $ git commit -a -m " 注釋"
  $ git push origin master

7、給版本打一個分支
此處的0.0.1版本號要與spec文件的保持一致

  $ git tag 0.0.1
  $ git push  --tags

三、建立關(guān)聯(lián)

  在項目的根目錄下操作
  $ pod repo push ZLRepo ZLDemoTool.podspe

成功后的截圖

image.png

通過這一步我們就同步好了遠程和本地索引庫,到此,私有庫已經(jīng)制作完畢!

使用 驗證

注意:podfile文件里要加上

source 'https://github.com/CocoaPods/Specs.git'
source 'https://gitee.com/whityStyle/ZLDemoTool.git'

配置
如果你不配置系統(tǒng)的索引庫 會找不到其他的庫 只能找到你自己創(chuàng)建的倉庫

image.png

總結(jié)

  • 私有庫:是我們真正放置組件代碼的地方。
  • 索引庫:存放spec文件的地方,用于索引到代碼的位置。

由于未保存截圖,引用了部分其他截圖(后續(xù)會補全所有源截圖),如發(fā)現(xiàn)有問題,可共同交流

參考:侵立刪
有g(shù)if
流程疏離
trunk的注冊使用發(fā)布

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 自己做第三方 我的 Notion 筆記工具https://www.notion.so/d0787034de3644...
    AlexLi_閱讀 628評論 0 0
  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,205評論 3 119
  • 請使用這個指令 sudo service apache2 restart huang@huang-ubuntu:~...
    你說你要一場閱讀 252評論 0 0
  • 想不起在哪一條街道 或是某個便利店門口 還是熙熙攘攘的人群中間 反正 我把你弄丟了 我開始舍不得你 不舍你被烈日灼...
    之年i閱讀 276評論 0 0
  • 黑云層層聚, 驚雷陣陣隆。 行人疾步走, 暴雨卻先行。
    葉心兒閱讀 216評論 0 4

友情鏈接更多精彩內(nèi)容