- 創(chuàng)建pod模板項(xiàng)目
pod lib create NAME
image - 編輯 podspec 文件
CocoaPods 系列之三 Podspec 語(yǔ)法說(shuō)明
1?? 包含mrc文件解決方式
non_arc_files = 'ALACommonComponent/Classes/Third/GTMBase/*.{h,m}'
s.exclude_files = non_arc_files
s.subspec 'no-arc' do |sna|
sna.requires_arc = false
sna.source_files = non_arc_files
end
2?? source字段填寫(xiě)git地址,只能使用http/https
3?? 如果依賴(lài)了其他pod庫(kù),若其他pod庫(kù)使用了.a/.framework 則設(shè)置s.static_framework = true
4?? 如果項(xiàng)目直接引用了.a/.framework, 則分別設(shè)置 vendored_frameworks和vendored_libraries
- 創(chuàng)建git遠(yuǎn)程倉(cāng)庫(kù)保存pod項(xiàng)目,并且關(guān)聯(lián)本地倉(cāng)庫(kù)
$ git status
$ git add .
$ git commit -m '編輯spec文件'
$ git remote add origin git_address (將本地庫(kù)與遠(yuǎn)程代碼倉(cāng)庫(kù)進(jìn)行關(guān)聯(lián))
$ git push origin master (提交到遠(yuǎn)程倉(cāng)庫(kù))
這里也可以利用Sourcetree來(lái)完成,主要目的是利用遠(yuǎn)程倉(cāng)庫(kù)保存pod項(xiàng)目
以上三步創(chuàng)建了pod工程,并進(jìn)行g(shù)it托管,接下來(lái)進(jìn)行pod工程的發(fā)布
一、私有庫(kù)
- 在git托管平臺(tái)創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)用來(lái)保存私有索引文件
- 創(chuàng)建本地的私有索引庫(kù)文件夾,并與遠(yuǎn)程私有索引庫(kù)進(jìn)行關(guān)聯(lián)
pod repo add NAME 索引文件git地址 - 將podspec文件提交到本地的私有索引庫(kù)
pod lib lint --allow-warnings --verbose驗(yàn)證
pod repo push 索引庫(kù)文件夾名字 .podspec文件 --allow-warnings --verbose發(fā)布
二、公開(kāi)庫(kù)
- 注冊(cè)trunk
pod trunk register zilin_weng@163.com 'weng1250' --verbose
郵箱以及用戶(hù)名請(qǐng)對(duì)號(hào)入座。用戶(hù)名我使用的是Github上的用戶(hù)名。--verbose參數(shù)是為了便于輸出注冊(cè)過(guò)程中的調(diào)試信息。執(zhí)行上面的語(yǔ)句后,你的郵箱將會(huì)受到一封帶有驗(yàn)證鏈接的郵件,如果沒(méi)有請(qǐng)去垃圾箱找找,有可能被屏蔽了。點(diǎn)擊郵件的鏈接就完成了trunk注冊(cè)流程。使用下面的命令可以向trunk服務(wù)器查詢(xún)自己的注冊(cè)信息: -
pod trunk me查看注冊(cè)結(jié)果 - 將podspec文件提交到trunk
pod trunk push .podspec文件
podspec中的版本號(hào)要與源碼庫(kù)git中的tag值保持一致,若更新podspec,一定要更新git的tag
三、常見(jiàn)問(wèn)題解決
- --verbose:打印詳細(xì)的流程
- --allow-warnings:允許warnings存在,不添加此項(xiàng)會(huì)導(dǎo)致只要有warning就會(huì)編譯不通過(guò)
- --skip-import-validation Lint skips validating that the pod can be imported/skip linking a pod during lint
- --use-libraries :If it needs to be a static library, lint with --use-libraries./ pod trunk push has the --use-libraries flag.參考
