CocoaPods本地私有庫
組件化-使用CocoaPods管理的本地私有庫事格,可以分為3種
- 本地私有引用(本地pod)
- 本地工程嵌套
- 內(nèi)部framework
第一種 本地私有引用(本地pod)
新建項目根文件夾TestProject(包含主工程和各個庫工程的文件夾)
-
在 TestProject 內(nèi)部
- 新建主工程文件夾TestProject
- 新建庫文件夾TestProjectLib
-
TestProjectLib 庫文件夾下
- 新建 Classes 文件夾核芽,用于存放庫文件
- 初始化 git 倉庫
$ git init
- 初始化 spec 文件
$ pod spec create TestProjectLib
執(zhí)行命令則會出現(xiàn)一個TestProjectLib.podspec
文件。
-
配置 spec 文件
s.name
s.version
s.summary = "TestProjectLib 對庫的簡單注釋"
-
s.description = "xxxxx具體描述信息運用什么思想什么技術(shù)使用了xx實現(xiàn)了xx解決了xx取得了xx"
或者s.description = <<-DESC xxxxx具體描述信息運用什么思想什么技術(shù)使用了xx實現(xiàn)了xx解決了xx取得了xx DESC
注意:
description
描述內(nèi)容要比summary
概要內(nèi)容長畔师,不然會出問題!-
s.homepage = "http://EXAMPLE/TestProjectLib"
- 本地庫,homepage默認即可剪廉;
- 遠程庫质帅,需要配置遠程地址;
-
s.licence = "MIT"
去掉(example)即可原始
s.licence = "MIT (example)"
-
Source Location
s.source = { :git => "", :tag => "#{spec.version}" }
本地庫將git指向地址設(shè)置為空即可黔牵。原始
spec.source = { :git => "http://EXAMPLE/TestProjectLib.git", :tag => "#{spec.version}" }
-
Source Code
spec.source_files = "Classes", "Classes/**/*.{h,m}"
spec.exclude_files = "Classes/Exclude"
-
創(chuàng)建對應(yīng)測試工程
- 在.podspec同目錄下聪轿,新建測試工程文件夾,名稱為Example
- cd到Example中荧止,新建測試工程屹电,名稱與庫名稱一致即可,也可加后綴Example
-
在主工程中配置pod
進入主工程TestProject
文件夾跃巡,與.xcodeproj
文件在同一目錄下- 初始化
Podfile
文件
$ pod init
- 配置pod
- 編輯Podfile危号,指定庫的路徑
$ pod 'TestProjectLib', :path => '../TestProjectLib'
注意: 保證本地路徑的準確性
- 編輯Podfile危号,指定庫的路徑
- 安裝庫
$ pod install
安裝成功
- 初始化
-
主工程中使用庫
通過.xcworkspace
打開主工程,在導(dǎo)航區(qū)域查看文件結(jié)構(gòu)- 如果是本地庫素邪,可以看到在 Pods - Development Pods 下看到引入的本地庫 TestProjectLib外莲;
- 本地庫會全部出現(xiàn)在 Development Pods 文件夾下;
- 在主工程中,編輯庫文件偷线,會自動同步修改本地庫磨确;
- 如果是本地庫素邪,可以看到在 Pods - Development Pods 下看到引入的本地庫 TestProjectLib外莲;
補充:使用模板自動創(chuàng)建一個庫和對應(yīng)的測試工程
- 創(chuàng)建
$ pod lib create xxx
- 測試工程使用pod本地依賴的方式引入私有庫來使用
第二種 本地工程嵌套
新建主工程
在主工程文件夾下新建多個本地庫工程
在主工程的導(dǎo)航文件系統(tǒng)中添加庫工程文件
-
使用庫
- 導(dǎo)入頭文件,注意路徑
import "../組件02/組件02/Person.h"
- 可能會報一個
Undefined symbol: _OBJC_CLASS_$_Person
的錯誤声邦。
解決方法為 - 在Xcode中打開主工程乏奥,可以選擇不同的scheme菜單來調(diào)試不同的庫工程
- 導(dǎo)入頭文件,注意路徑
缺點
庫工程也在主工程的目錄下,沒有在物理層很好地隔離亥曹,造成管理不便邓了。
第三種 內(nèi)部framework
- 新建主工程
- Xcode中,選中主工程target媳瞪,在target導(dǎo)航窗口骗炉,點擊左下角加號+,選擇新建framework
- 缺點
庫framework也是在主工程目錄下蛇受,沒有很好隔離句葵。