總結流程和pod 指令,以及自己操作遇到的問題。
參考文章
ios元件化 - 基礎
ios元件化 - 專案元件化
swift/objective-c-使用cocoapods建立/管理私有庫(初中級用法)
swift/objective-c-使用cocoapods建立/管理私有庫(高階用法)
建立自己的私有庫
4、使用私有庫
5、總結
6、在碼雲建立私有庫
參考文章
1、建立私有spec repo
1.1 在 github 上建立乙個倉庫作為私有庫;
1.2 在本地建立私有庫
命令
pod repo add [私有倉庫名稱] [github https 鏈結位址]
例: pod repo add dydemospecs
2、建立元件庫
2.1 在本地建立元件庫
在命令列 cd 進入想要把元件庫存入的資料夾,執行下面命令:
命令
pod lib create [庫名稱]
例 pod lib create dydemotest
根據提示填入資料
what platform do you want to use?? [ ios / macos ]
> ios
what language do you want to use?? [ swift / objc ]
> objc
> yes
which testing frameworks will you use? [ specta / kiwi / none ]
> none
would you like to do view based testing? [ yes / no ]
> no
what is your class prefix?
> dy
2.2 在 git 上建立元件庫,並且把本地元件庫和遠端關聯
2.3 新增類檔案和資源檔案到庫中
庫的列表如下
dydemotest
- ...
- dydemotest
- assets
- classes
- dydemotest.podspec
- example
- ...
新建的類檔案存入 classes 資料夾中,或者自行新建資料夾,存入新建的資料夾。同時修改 dydemotest.podspec 中對應的位址。
s.source_files = 'dydemotest/classes/**/*'
例如檔案存入base資料夾
s.subspec 'base' do |sb|
# 類檔案路徑
sb.source_files = 'dydemotest/base/**/*.'
# 資源檔案路徑
sb.resource_bundles =
end
2.4 注意事項
2.4.1 要引用其他資料夾下的類,需要新增依賴
dysomeobjc.m 在 some 資料夾下
#import "dysomeobjc.h"
#import "dybarbutton.h"
// 在 base 資料夾下
podspec 中新增依賴
s.subspec 'some' do |ss|
ss.source_files = 'dydemotest/some/**/*.'
ss.dependency 'dydemotest/base'
end
2.4.2 podspec 中的 source_files
'dydemotest/some/**/*.'
其中的 /**/ 表示任意層級,只要是 dydemotest/some/ 路徑下的檔案都會包含在內,不管是 dydemotest/some/a.h 還是 dydemotest/some/a/b/c/d.h。
*. 表示所有的.h和.m檔案。
2.4.3 資源檔案引用
sb.resource_bundles =
在庫中建立乙個類來允許外界引用庫中的資源檔案
+
(uiimage *
)getimagewithname:
(nsstring *
)imgname
uiimage *image =
[uiimage imagenamed:imgname inbundle:bundle compatiblewithtraitcollection:nil];if
(image == nil)
return image;
}
參考
3、提交元件庫
3.1 驗證本地庫
確認**沒有錯誤
命令列回到庫目錄 …/dydemotest/
pod lib lint --allow-warnings
庫檔案依賴其他庫
s.dependency 'dydemotools'
驗證時加上私有庫位址
pod lib lint --allow-warnings --sources='私有庫位址,'
3.2 提交到git
提交修改內容,並打上標籤(tag),同步到遠端git倉庫,標籤(tag) 也要推送到遠端。
tag 的值要和 dydemotest.podspec 檔案中 s.version= 『0.1.0』 的值相同。version= 『0.1.0』,tag 也要為 0.1.0。
3.3 將庫檔案推送到遠端私有庫
命令
pod repo push [私有庫] [元件庫].podspec --allow-warnings
例:pod repo push dydemospecs dydemotest.podspec --allow-warnings
4、使用私有庫
4.1 在 podfile 中新增庫位址
source '' # 官方庫
source '' # 私有庫
其他和第三方庫使用都一樣了。
5、總結
5.1 在 github 上建立私有庫
5.2 在本地建立私有庫
pod repo add [私有庫名稱] [私有庫位址]
5.3 在本地建立元件庫
pod lib create [庫名稱]
5.4 在 github 上建立元件庫,並和本地關聯
5.5 新增類檔案和資源檔案
5.6 配置 podspec
5.7 儲存修改內容同步到遠端 github 上,並打標籤(tag)
5.8 本地驗證
在庫根目錄下執行
pod lib lint --allow-warnings
依賴私有庫或公有庫檔案,不寫sources預設公有庫
pod lib lint --allow-warnings --sources='私有庫位址,公有庫位址'
5.9 將元件庫推送到私有庫中
pod repo push [私有庫] [元件庫].podspec --allow-warnings
5.10 使用元件庫
podfile
source '' # 官方庫
source '' # 私有庫
...pod [私有元件庫]
...
6、在碼雲建立私有庫
私有庫位址
建立元件庫後修改檔案podspec內的位址,修改這兩處
s.homepage = ''
s.source =
參考文章
ios元件化 - 基礎
ios元件化 - 專案元件化
swift/objective-c-使用cocoapods建立/管理私有庫(初中級用法)
swift/objective-c-使用cocoapods建立/管理私有庫(高階用法)
Cocoapods 建立私有庫
比如我有乙個框架a,該工程已經在git版本管理下了,先要在該工程下建立podspec 檔案,裡面包含著一些資訊。比如使用該框架時依賴哪些框架,開源協議,需要哪些檔案,以及該工程的對應tag標籤。然後上傳podspec到私有specrepo。spec repo裡面可以管理很多podspec,其實coc...
CocoaPods私有庫的建立
一.建立版本庫首先,我們要建立乙個像master一樣的存放版本描述檔案的git倉庫,因為是私人git倉庫,我選擇了oschina來建立自己的石油倉庫 因為是免費的?當然你也可以選擇在github上建立 7 month 接下來,我將以oschina為例來建立自己的私有庫 建立版本描述倉庫 版本庫名字為...
CocoaPods建立私有庫例項
導言1.從最簡單的開始 pod私庫建立,可以分為三部分 1 庫,就是我們一般存在 的git庫,例如github,推薦用國內的。例如gitee 2 podspec,這個是建立私庫的核心部分,用命令建立後,手動修改 3 gitspec,即將第二部中的podspec存到某git庫中,這樣其它專案才能通過設...