零奏黑、一些小命令
git tag -a 0.0.1 -m “Release version 0.1.3″
-a 0.0.1是增加 名為0.0.1的標(biāo)簽
-m 后面跟著的是標(biāo)簽的注釋
git push origin --tags
提交標(biāo)簽到遠(yuǎn)程服務(wù)器上
pod init ///創(chuàng)建podfile
pod lib create JHCSpec /// 創(chuàng)建私有庫
pod repo add GGSpec https://gitee.com/XXX ///創(chuàng)建私有庫并關(guān)聯(lián)地址
pod repo update XXXXXmerios-cocoapods 更新私有源
pod update --no-repo-update
pod lib lint --allow-warnings ///驗(yàn)證本地 pod 配置是否正確
pod spec lint --allow-warnings ///驗(yàn)證遠(yuǎn)端 pod 配置是否正確
///其中--allow-warnings 參數(shù)代表忽略警告漠嵌,如果你的代碼在編譯時(shí)有警告青扔,如果不加這個(gè)參數(shù)就會報(bào)錯(cuò)。
.ruby文件里面打印 :
puts '哈哈哈'
print '哈哈哈'
puts "#{LOTUS_TARGET.name}哈哈"
一、組件架構(gòu)(待更新)
-
創(chuàng)建本地私有庫
1)查看本地私有庫
pod repo
2)創(chuàng)建遠(yuǎn)程spec私有倉庫<github舷手,ggitlab等,要選擇readme初始化>,此步不做表述劲绪,復(fù)制鏈接https://gitee.com/zhugemo/GGSpec.git
3)創(chuàng)建私有的repo倉庫男窟,并通過pod repo查看是否生成
pod repo add GGSpec https://gitee.com/zhugemo/GGSpec.git
二、創(chuàng)建單獨(dú)組件
-
創(chuàng)建倉庫:在github或者gitlab上創(chuàng)建倉庫
-
創(chuàng)建對應(yīng)的本地文件LCGeneral<不用到殼工程目錄>:
pod lib create LCGeneral
-
cd到本地文件目錄下贾富,將倉庫和本地文件A關(guān)聯(lián)起來:
<進(jìn)到子組件下> git remote add origin 本地文件clone地址鏈接
-
將本地文件推到倉庫中去:
git push --set-upstream origin master 或者 git push --set-upstream origin main
到此步時(shí)候歉眷,組件已經(jīng)創(chuàng)建好,可以進(jìn)行后續(xù)的大操作(例:關(guān)聯(lián)到殼工程颤枪、鏡像到cocoapods等)
1)在殼工程里面的Pods - Podfile 里面Module部分把新增組件添加進(jìn)去
2)更改子組件內(nèi)容 汗捡,改完提交修改內(nèi)容
3)提交殼工程
三、關(guān)聯(lián)到殼工程
創(chuàng)建一個(gè)項(xiàng)目畏纲,pod init 一個(gè)Podfile,接著隨意導(dǎo)入個(gè)三方庫扇住,然后破的install,我們稱之為殼工程
修改組件里面的.podspec文件的source地址和homepage地址盗胀,修改完后艘蹋,cd到組件目錄將其push到組件對應(yīng)的遠(yuǎn)程倉庫
-
在組件目錄中,將組件的.podspec推送到第一步創(chuàng)建的私有庫中票灰,
如果此命令找不到私有庫的話簿训,用下面指令<通過上面指令找到所有的source私有庫并復(fù)制> pod repo push GGSpec 'GGGeneral.podspec' --sources='https://gitee.com/zhugemo/GGSpec.git,https://gitee.com/zhugemo/HHSpec.git,http://47.97.230.127:18080/LotusCustomeriOS/cocoapods.git,https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git,https://cdn.cocoapods.org/' --use-libraries --allow-warnings swift版本要特殊一些咱娶,新增 s.swift_version = '5.0', --use-modular-headers等 如果因?yàn)槲募窂絾栴},可調(diào)整目錄地址順序强品,例如: s.source_files = 'NNGeneral/Classes/**/*' s.prefix_header_file = "NNGeneral/Classes/Header/NNGeneral.h"
- 在殼工程里面的Pods - Podfile文件里面,關(guān)聯(lián)下自己的私有庫地址方便pod install屈糊;
更改子組件重的相關(guān)代碼<例:實(shí)現(xiàn)相關(guān)組件需求功能>的榛,改完后提交該組件<add、commit逻锐、pull夫晌、push等操作>;
提交殼工程<add昧诱、commit晓淀、pull、push等操作>
四盏档、組件打tag
舊版
0)遷入fastlane命令文件
1)注意Example里面的Scheme是否正確(非Tests)
2)pod install 編譯看下是否成功
3)打tag :fastlane release_pod version:0.1.5
新版:
0)遷入Scripts命令文件
1)python3 ../scripts/pod_publish.py <單個(gè)的凶掰,需要進(jìn)入對應(yīng)目錄下>
python3 ../scripts/project_pods_publish.py <工程的>
五、同一個(gè)git地址下多個(gè)spec
案例:https://github.com/dvlproad/CJUIKit.git
六蜈亩、.podspec文件
七懦窘、.subspec管理功能模塊
1.屏蔽s.source_files
1、s.version 設(shè)置該組件版本tag
2稚配、s.source 設(shè)置該組件的指向路徑
3畅涂、s.prefix_header_file 創(chuàng)建設(shè)置該組件的全局文件(例如 .pch 或者 .h )
4、s.resource_bundles 創(chuàng)建設(shè)置該組件的資源庫(例如 .xcassets 或者 .json文件)
5道川、s.source_files 設(shè)置該組件的文件目錄
6午衰、s.framworks 設(shè)置該組件需要引用的系統(tǒng)framework (例如 s.frameworks='CoreLocation','CFNetwork' ,注意后綴需要去掉)
7冒萄、s.libraries 設(shè)置該組件需要引用的系統(tǒng)靜態(tài)庫 (例如 導(dǎo)入libz.tbd和libresolv.tbd 只需要導(dǎo)入 s.libraries = 'resolv','z')
8臊岸、s.ios.vendored_frameworks 設(shè)置引用導(dǎo)入到本組件中的三方framework
9、s.public_header_files 設(shè)置引用導(dǎo)入本組件中的三方庫的頭文件(例:s.public_header_files = 'LCLogin/Classes/JiYan/GTCaptcha4.framework/Headers/*.h')
10宦言、s.ios.vendored_libraries 設(shè)置引用導(dǎo)入到本組件中的三方靜態(tài)庫 (例如 s.ios.vendored_libraries ='LCJiguang/libjverification-ios-8.1.2.a'扇单,命名注意需要增加前綴lib)
11、s.resource_bundles 設(shè)置生成ipa包里面的bundle文件奠旺;
在ipa根目錄文件下生成LCLogin.bundle和GTCaptcha4.bundle
s.resource_bundles = {
'LCLogin' => ['LCLogin/LCLogin/Assets/LCLogin.xcassets'],
'GTCaptcha4' =>
['LCLogin/LCLogin/Assets/Resources/GTCaptcha4.bundle/*']
}
12蜘澜、s.ios.deployment_target 設(shè)置該組件的最低iOS版本支持
13、s.dependency 設(shè)置該組件需要依賴的三方組件/庫
14响疚、s.static_framework 設(shè)置該組件支持靜態(tài)庫 (例如 s.static_framework = true)
15鄙信、s.pod_target_xcconfig 設(shè)置該組件支持的指令集 (例如 s.pod_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 armv7 arm64' })
16、s.subspec 設(shè)置該組件子組件
17忿晕、s.preserve_paths = 'YourComponent/**/*.h' 組件內(nèi)混編