pod 本地倉庫創(chuàng)建以及上架步驟

一孤荣、pod 相關(guān)指令

新上架的pod 代碼? 不能search到解決方案

1.更新倉庫? :? pod setup
2.刪除索引 : rm ~/Library/Caches/CocoaPods/search_index.json
3.搜索:pod search‘yourPod’

只更新pod 引用到的代碼

安裝項目中的庫(不更新倉庫):pod install --verbose --no-repo-update
更新項目中的庫(不更新倉庫):pod update --verbose --no-repo-update

命令加可選參數(shù)

查看詳情過程(可以查看更多的打印信息): --verbose
允許警告(有警告會通不過章郁,建議一直帶上):? --allow-warnings



二、創(chuàng)建 pod 本地倉庫 pod私有庫創(chuàng)建)

1 肮疗、在本地gitlab? 創(chuàng)建一個空的代碼倉庫 名稱隨便取 (以下用該URL: git.XXX.com/ios/iOSSpec.git做示例)额划。?

專門給pod 建立索引的工闺,這個項目建議只留在遠程度苔,本地代碼不要上傳到該服務(wù)器

2效拭、將上述創(chuàng)建的倉庫添加到pod 倉庫索引中

打開命令行? 輸入: pod repo add[隨便取個倉庫名]? git.XXX.com/ios/iOSSpec.git

輸入: pod repo list? 可以查看到除了github倉庫還新增了剛剛[隨便取個倉庫名]?

3暂吉、 最后 可以為‘ git.XXX.com/ios/ 下的代碼倉庫進行 pod 上架了 pod 上架步驟)

?pod代碼管理大概流程


pod 大概流程


三、pod 上架步驟

注意:以下pod指令cd 到 .git 的同級目錄下即項目目錄

1缎患、創(chuàng)建 .podspec文件 并填寫注冊信息 (參考:podspec 注冊說明書)

http://guides.cocoapods.org/syntax/podspec.html

?: pod spec create SGIfiniteView

第二次上架時候如果資源文件沒有發(fā)生改變只需要修改一下版本號就好了


2慕的、驗證 .podspec文件

本地校驗: pod lib lint xxx.podspec?

遠程校驗: pod spec lint xxx.podspec 遠程校驗 要先執(zhí)行 3 步驟

例:pod lib lint SGIfiniteView.podspec

這里驗證通不過需要,根據(jù)報錯信息修復(fù)相關(guān)的errores 或者warnings挤渔,查看詳情過程(可以查看更多的打印信息)建議加上--verbose 肮街。? 祝你好運!


3判导、將代碼打上tag嫉父,并push到遠程/服務(wù)器代碼倉庫?(如:github.com?

注意:遠程代碼的tag .podspec文件中version要一至 打tag之前確保所有的git操作都是已提交確保本地代碼與遠程代碼一致


? ??ps: 使用gittag 相關(guān)命令

????創(chuàng)建tag
????本地:git tag "0.0.1"
????遠程:git push --tags

????刪除tag
????本地:git?tag?-d“tag version”?
????遠程:git push origin :refs/tags/? ??


4、提交podspec文件 發(fā)布版本

例:pod trunk push SGIfiniteView.podspec? (第一次提交要注冊pod賬號)

?ps:注冊pod賬號或者切換?
使用以下命令
? ??????pod trunk register your_email_address?your name? --description='xxx? macbook pro'?
????????如 $:?pod trunk register?123456@qq.com?ShangSan?

? ? 然后郵箱會接收到cocoapod的驗證郵件眼刃,將郵件中的鏈接打開就OK了

Tips:
如果pod trunk push失敗了需要修改配置或者代碼最好重新定義一個新的版本和git tag 否則需要刪除git 原來的tag以及遠程tag? 重新打上tag? 再提交驗證


四绕辖、xxx .podspec 文件詳解

Cocoapods 官網(wǎng)指南: http://guides.cocoapods.org/syntax/podspec.html

Pod::Spec.new do |s|

# ―――? Spec Metadata概述 ———-#

#這里以 LYTUIKIT為例 地址:https://github.com/install-b/LYTUIKIT

?// pod項目的名稱? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?s.name? ? ? ? = "LYTUIKIT"?

?// pod發(fā)布的版本號? 要與git倉庫的tag保持一致? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? s.version? ? ? = "0.0.3"? ?

// pod項目描述? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? s.summary? ? ? =“pod項目簡單的摘要”

s.description? = <<-DESC
在這里填寫pod 項目的描述
DESC

// 宣傳主頁
s.homepage? ? = "http://www.71ant.com"

# ―――? Spec License? 協(xié)議? ――― #

// 默認一般都是MIT? 這個在git倉庫 創(chuàng)建工程時候 就需要配置成MIT 協(xié)議
s.license? ? ? = "MIT"

# ―――Author Metadata? 作者信息――― #

// 配置作者名字和郵箱
s.author? ? ? ? ? ? = { "ShangenZhang" => "645256685@qq.com" }

# ――― Platform Specifics 支持的平臺 ――― #

//只支持iOS
s.platform? ? = :ios

// 支持iOS 和 OSX 這個是假的例子 具體上網(wǎng)搜索
#s.platforms = :ios,:osX

# ――― Source Location 地址路徑配置 ――― #

//? 1、’https://github.com/install-b/LYTUIKIT.git’是git倉庫的路徑? 可以為本地gitlab上代碼倉庫地址
//? 2擂红、‘0.0.3’? 此次發(fā)布的版本與之對應(yīng)的git倉庫的
s.source? ? ? = { :git => "https://github.com/install-b/LYTUIKIT.git",:tag => "0.0.3" }

// 為了避免錯誤通常這樣寫
s.source? ? ? = { :git => "https://github.com/install-b/LYTUIKIT.git",:tag => s.version }

# ――― Source Code 源代碼資源――― #

//這個是要輸出給用戶的所有源文件文件? 這里只有.h和.a文件? eg:.c,.cpp,.m ……
s.source_files? =? "LYTUIKIT/**/*.{h,a}"

//? 這個是自己打包的.a 放在pod 工程里面引用? 需要用到.a 一定要加這個
s.vendored_libraries = "LYTUIKIT/**/*.a"

ps: 這里自己打的包名稱一定要以“lib”開頭仪际,且‘lib’后面的名稱不能與自己的pod名稱相同 不分大小寫

//還有自己寫的framework? 包
#s.vendored_framework =“XXX.framework”
#s.vendored_frameworks =“XXX.framework”,“YYY.framework”

// 這個是需要別人導入的頭文件引用
s.public_header_files = "LYTUIKIT/**/*.h"
ps:上面寫的全部是相對路徑? .podspec 文件所在目錄開始算起?
其中‘* 代表所有的意思 *.h 值某個路徑下的所有 h 文件? 子文件夾下的不算
** 代表 該文件夾以及所有的子文件夾下的所有路徑

# ――― Resources 資源文件配置 ――― #

//一個bundle
#s.resource =? 'LYTUIKIT/Bundles/LYFileSelector.bundle'

//多個bundle
s.resources =['LYTUIKIT/Bundles/LYFileSelector.bundle','LYTUIKIT/Bundles/LYTChatProgressHUD.bundle']

# ――― Project Linking 系統(tǒng)動態(tài)庫連接的 ―――― #

// FRAMEWORK引用
s.framework? = "UIKIT"
#s.frameworks? = "UIKIT",“CORE TEXT”

// tbd動態(tài)庫連接
#s.library =“xml2”
s.libraries =“xml2”,“z”,“sqlite3.0”
注意:tbd 動態(tài)庫 只要名稱? lib前綴和后綴.tbd 都要去掉

# ――― Project Settings 項目工程配置――― #

// ARC項目
s.requires_arc = true

// builtSettings
s.xcconfig = {“OTHER_LDFLAGS”=>“$(inherited)-ObjC”,“ENABLE_BITCONDE”? =>“NO”}

# ―――Pod dependency? pod第三方依賴――― #

// 假設(shè)依賴 三個 其他pod 倉庫 例:
s.dependency 'AFNetworking','~> 1.0'
s.dependency 'RestKit/CoreData','~> 0.20.0'
s.ios.dependency 'MBProgressHUD','~> 0.5'

end


子組件創(chuàng)建

#這里以? LYTSDK為例
參考地址:https://github.com/71sino/LYTSDK

// 設(shè)置默認的子組件
s.default_subspec = 'LYTSDK'

//? s.subspec //為該組件設(shè)置子組件

//子組件1? “LYTFoundation”為子組件名稱pod下載后子文件名稱? |f|子組件命令縮寫隨便自己

? s.subspec 'LYTFoundation' do |f|


? ? f.framework = "Foundation"

? ? f.source_files = 'FrameworkTest/LYTFoundation/**/*.{h,a}'

? ? f.vendored_libraries = "FrameworkTest/LYTFoundation/*.a"

? ? f.public_header_files = 'FrameworkTest/LYTFoundation/**/*.h'

? end

? s.subspec 'LYTCommonLib' do |com|


? ? com.framework = "Foundation"

? ? com.source_files = 'FrameworkTest/LYTCommonLib/**/*.{h,a}'

? ? com.vendored_libraries = "FrameworkTest/LYTCommonLib/*.a"

? ? com.public_header_files = 'FrameworkTest/LYTCommonLib/**/*.h'

? end

? s.subspec 'LYTSDK' do |sdk|

? ? sdk.frameworks = "UIKit","CoreTelephony","UserNotifications"

? ? sdk.libraries = "z","xml2","sqlite3.0"

? ? sdk.source_files? = "FrameworkTest/LYTSDK/*.h","FrameworkTest/LYTSDK/*.a"

? ? sdk.vendored_libraries = "FrameworkTest/LYTSDK/*.a"

? ? sdk.public_header_files = "FrameworkTest/LYTSDK/*.h"

//設(shè)置子組件依賴關(guān)系

? ? sdk.dependency 'LYMqttSDK/LYTFoundation'

? ? sdk.dependency 'LYMqttSDK/LYTCommonLib'

? end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昵骤,一起剝皮案震驚了整個濱河市树碱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌变秦,老刑警劉巖赴恨,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異伴栓,居然都是意外死亡伦连,警方通過查閱死者的電腦和手機雨饺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惑淳,“玉大人额港,你說我怎么就攤上這事∑缃梗” “怎么了移斩?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绢馍。 經(jīng)常有香客問我向瓷,道長,這世上最難降的妖魔是什么舰涌? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任猖任,我火速辦了婚禮,結(jié)果婚禮上瓷耙,老公的妹妹穿的比我還像新娘朱躺。我一直安慰自己,他們只是感情好搁痛,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布长搀。 她就那樣靜靜地躺著,像睡著了一般鸡典。 火紅的嫁衣襯著肌膚如雪源请。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天彻况,我揣著相機與錄音巢钓,去河邊找鬼。 笑死疗垛,一個胖子當著我的面吹牛症汹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贷腕,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼背镇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泽裳?” 一聲冷哼從身側(cè)響起瞒斩,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涮总,沒想到半個月后胸囱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡瀑梗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年烹笔,在試婚紗的時候發(fā)現(xiàn)自己被綠了裳扯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡谤职,死狀恐怖饰豺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情允蜈,我是刑警寧澤冤吨,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站饶套,受9級特大地震影響漩蟆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妓蛮,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一怠李、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仔引,春花似錦、人聲如沸褐奥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撬码。三九已至儿倒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呜笑,已是汗流浹背夫否。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叫胁,地道東北人凰慈。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像驼鹅,于是被迫代替她去往敵國和親微谓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容