iOS-使用CocoaPods在私人Pod Specs發(fā)布pod倉庫

由于GitHub訪問太慢肉瓦,我在Gitee上搭建

環(huán)境準備

  • 安裝Xcode
  • 安裝cocoapods

公共Specs

使用cocoapods滚躯,如果不指定倉庫來源的話,默認為公共Specs:https://github.com/CocoaPods/Specs.git

如果 pod install 太慢可以指定來源為cocoapods在gitee的鏡像:https://gitee.com/mirrors/CocoaPods-Specs.git

在Podfile上面添加指定來源:

source 'https://gitee.com/mirrors/CocoaPods-Specs.git'

創(chuàng)建個人specs遠程倉庫

在gitee上創(chuàng)建一個帶有Readme 文件的倉庫柳畔,命名為CSPublicSpecs(名稱自己決定)
PS:這里不能創(chuàng)建空倉庫馍管,否則會導(dǎo)致無法推送podspec

添加創(chuàng)建好的specs到本地:

pod repo add CSPublicSpecs https://gitee.com/hcsaaron/cspublic-specs.git

添加成功后,可以在本地~/.cocoapods/repos下看到CSPublicSpecs

新建本地倉庫

默認模板 創(chuàng)建

pod lib create CSPublicSDK

指定模板創(chuàng)建

pod lib create CSPublicSDK --template-url=https://gitee.com/Pods-Lib/pod-template.git

等待下載模板完成后薪韩,按步驟選擇類型

基于已有的本地倉庫

  1. cd到xxx.xcodeproj工程目錄下
  2. 執(zhí)行pod spec create xxx生成xxx.podspec文件确沸,修改相關(guān)配置
  3. 執(zhí)行pod init生成Podfile文件,添加依賴
  4. 執(zhí)行pod install生成. xcworkspace

編輯.podspec

根據(jù)自己項目情況修改.podspec文件俘陷,關(guān)于Podspec的學(xué)習(xí)罗捎,請看 CocoaPods - Podspec Syntax Reference

Pod::Spec.new do |s|
  s.name             = 'CSPublicSDK'
  s.version          = '0.1.0'
  s.summary          = 'A short description of CSPublicSDK.'

  s.description      = <<-DESC
TODO: Add long description of the pod here.
                       DESC

  s.homepage         = 'https://gitee.com/hcsaaron/cspublic-sdk'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'hcsaaron@163.com' => 'hcsaaron@163.com' }
  s.source           = { :git => 'https://gitee.com/hcsaaron/cspublic-sdk.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'

  s.ios.deployment_target = '9.0'

  s.source_files = 'CSPublicSDK/Classes/**/*'
  
  # s.resource_bundles = {
  #   'CSPublicSDK' => ['CSPublicSDK/Assets/*.png']
  # }

  # s.public_header_files = 'Pod/Classes/**/*.h'
  # s.frameworks = 'UIKit', 'MapKit'
  # s.dependency 'AFNetworking', '~> 2.3'
end

創(chuàng)建遠程倉庫

在gitee上創(chuàng)建一個名為CSPublicSDK的倉庫(名稱自己決定)

創(chuàng)建完成后復(fù)制git地址為:https://gitee.com/hcsaaron/cspublic-sdk.git

將本地倉庫關(guān)聯(lián)遠程倉庫:

git remote add origin https://gitee.com/hcsaaron/cspublic-sdk.git

將所有文件暫存:

git add .

提交:

git commit -m "初次提交"

推送到遠程倉庫:

git push -u origin master

推送成功:

Enumerating objects: 79, done.
Counting objects: 100% (79/79), done.
Delta compression using up to 16 threads
Compressing objects: 100% (70/70), done.
Writing objects: 100% (79/79), 27.92 KiB | 5.58 MiB/s, done.
Total 79 (delta 17), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-5.0]
To https://gitee.com/hcsaaron/cspublic-sdk.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

打開https://gitee.com/hcsaaron/cspublic-sdk可以看到遠程倉庫已經(jīng)更新了

驗證.podspec文件

cd到xxx.podspec文件所在目錄下:

pod lib lint

驗證失敗,報錯:

[!] CSPublicSDK did not pass validation, due to 2 warnings (but you can use `--allow-warnings` to ignore them).
You can use the `--no-clean` option to inspect any issue.

則按提示添加--allow-warnings參數(shù):

pod lib lint --allow-warnings

看到以下提示拉盾,則說明驗證成功:

CSPublicSDK passed validation.

如果pod lib lint驗證失敗桨菜,可以視情況附加以下參數(shù):
--verbose:查看詳細信息
--allow-warnings:允許警告,用到第三方框架時捉偏,用這個參數(shù)可以屏蔽警告
--use-libraries:如果用到的第三方庫需要使用庫文件的話倒得,會用到這個參數(shù)
--sources:如果一個庫的podspec包含除了cocoapods倉庫以外的其他庫的引用,則需要改參數(shù)指明告私,用逗號分隔屎暇。例如:pod lib lint --sources='https://gitee.com/hcsaaron/cspublic-sdk.git'
還有另外兩個參數(shù)可以使用:
--fail-fast:在出現(xiàn)第一個錯誤時就停止
--subspec=Name:用來校驗?zāi)硞€子模塊的情況

發(fā)布podspec

打tag并push到遠程(tag版本號要和podspec中的s.version一致):

git tag '0.1.0'
git push --tags

CSPublicSDK.podspec提交到CSPublicSpec中:

pod repo push CSPublicSpecs CSPublicSDK.podspec

如果報錯,則添加--allow-warnings參數(shù):

pod repo push CSPublicSpecs CSPublicSDK.podspec --allow-warnings

推送成功后驻粟,可以看到CSPublicSpecs已經(jīng)有對應(yīng)的.podspec

搜索一下自己剛剛發(fā)布的pod庫:

pod search CSPublicSDK

已經(jīng)可以搜出來了

集成SDK

新建demo工程:

cd進demo工程目錄根悼,執(zhí)行pod init生成Podfile

pod init

編輯Podfile添加pod 'CSPublicSDK', '~> 0.1.0',還需指定來源source 'https://gitee.com/hcsaaron/cspublic-specs.git'

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

source 'https://gitee.com/hcsaaron/cspublic-specs.git'

target 'CSDemo' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for CSDemo
  pod 'CSPublicSDK', '~> 0.1.0'

end

然后執(zhí)行pod install生成.xcworkspace

pod install

已經(jīng)可以愉快地使用了

參考資料

CocoaPods - Using Pod Lib Create

CocoaPods - Podspec Syntax Reference

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜀撑,一起剝皮案震驚了整個濱河市挤巡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酷麦,老刑警劉巖矿卑,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異沃饶,居然都是意外死亡母廷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門糊肤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琴昆,“玉大人,你說我怎么就攤上這事馆揉∫瞪幔” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舷暮。 經(jīng)常有香客問我态罪,道長,這世上最難降的妖魔是什么下面? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任复颈,我火速辦了婚禮,結(jié)果婚禮上诸狭,老公的妹妹穿的比我還像新娘券膀。我一直安慰自己君纫,他們只是感情好驯遇,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蓄髓,像睡著了一般叉庐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上会喝,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天陡叠,我揣著相機與錄音,去河邊找鬼肢执。 笑死枉阵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的预茄。 我是一名探鬼主播兴溜,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼耻陕!你這毒婦竟也來了拙徽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤诗宣,失蹤者是張志新(化名)和其女友劉穎膘怕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體召庞,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡岛心,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了篮灼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忘古。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖穿稳,靈堂內(nèi)的尸體忽然破棺而出存皂,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布旦袋,位于F島的核電站骤菠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏疤孕。R本人自食惡果不足惜商乎,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望祭阀。 院中可真熱鬧鹉戚,春花似錦、人聲如沸专控。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伦腐。三九已至赢底,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間柏蘑,已是汗流浹背幸冻。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留咳焚,地道東北人洽损。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像革半,于是被迫代替她去往敵國和親碑定。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

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