制作cocoapods庫

腦殼大,寫了個(gè)cocoapods 已經(jīng)上了 后面增加內(nèi)容,搞忘了以前怎么寫的了 ?還是在簡(jiǎn)書上面記錄哈別到時(shí)候更新的還是忘了?

1.github上面新建一個(gè)項(xiàng)目;

2.git clone 到本地;

3.cd 到當(dāng)前目錄?創(chuàng)建.podspes文件 for?example ?JJTools.podspec;

$ pod spec create JJTools;

4.在目錄中創(chuàng)建工程(此處命名為JJTools),創(chuàng)建共享的類Classes;

5.編輯podspec文件;


編輯podspec

6.驗(yàn)證:pod lib lint JJTools.podspec?--verbose. //只驗(yàn)證本地

? ? ? ? ? ? pod spec lint JJTools.podspec?--verbose//本地和線上一起驗(yàn)證 推薦這種

7.打tag,push。這里tag加v例如

$ git tag 'v1.1.1'

$git push --tags

$git push origin master

8.注冊(cè)pod trunk register xxx@xx'Your name' --description='macbook pro'//已經(jīng)注冊(cè)略過

9.發(fā)布:pod trunk push JJTools.podspec --allow-warnings


push 成功


pod search

10.刪除三方庫//這個(gè)還未驗(yàn)證過

pod trunk delete JJTools0.0.1

pod trunk deprecate JJTools

podsetup

10.清除緩存:pod cache clean --all

以下說幾個(gè)遇到的坑和經(jīng)驗(yàn),供自己以后回顧和道友一起看:

1.確保自己的項(xiàng)目能有run起來,前期不知道咋的build沒問題但是run的時(shí)候始終沒反應(yīng)導(dǎo)致最后trunk的時(shí)候一直報(bào)這個(gè)錯(cuò)誤:


returned an unsuccessful exit code

2.-Wnon-modular-include-in-framework-module

這個(gè)錯(cuò)誤出現(xiàn)的時(shí)候網(wǎng)上的道友說的是這樣設(shè)置發(fā)現(xiàn)并沒有什么卵用


這樣設(shè)置

最后發(fā)現(xiàn)在podspec里面這樣設(shè)置就可以了

s.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }

3.關(guān)于文件夾分層和頭文件的設(shè)置

我看了很久如果里面不分層的話,這樣就直接包括了所有

s.source_files = 'JJTools/JJTools/Classes/**/*'

分層的話,

s.source_files = 'JJTools/JJTools/Classes/JJBaseHeader.h'

s.public_header_files = 'JJTools/JJTools/Classes/JJBaseHeader.h'

s.subspec 'JJModel' do |ss|

? ss.source_files = 'JJTools/JJTools/Classes/JJModel/*'

?ss.dependency 'JJTools/JJDefine'

??end

最開始不理解這種分層的做法,其實(shí)相當(dāng)于在JJTools里面有個(gè)子podspec,只要制定了子podspec包含那些上層的自然包括了,而頭文件不在任何子podspec里面,所以只要s.source_files 包含一個(gè)頭文件就好??梢詤⒖糀FN的這種寫法;

4.項(xiàng)目中既有ARC又有MRC

把MRC單獨(dú)分層出來

non_arc_files = 'JJTools/JJTools/Classes/JJSafe/*'

s.exclude_files = non_arc_files

s.subspec 'JJSafe' do |ss|

? ss.source_files = non_arc_files

? ss.requires_arc = false

? end


pod后自動(dòng)添加flag

5.關(guān)于framework的使用可以在上層podspec中全部寫出來 下面的子podspec不寫 ;

6.如果發(fā)現(xiàn)?pod spec lint 沒問題 ?但是一直trunk一直不對(duì) 考慮重新打個(gè)tag在push;

7.整個(gè)項(xiàng)目在我這里的層級(jí)關(guān)系如下cd的項(xiàng)目根目錄


層級(jí)關(guān)系

ok,最后的install后安裝是這樣的


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

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

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