使用CocoaPods的一些倉(cāng)庫(kù)說明

原文地址

CocoaPods官網(wǎng)

1筐眷、pod使用官網(wǎng)的倉(cāng)庫(kù)的關(guān)聯(lián)代碼(這些代碼需要cocoapods審核通過才能被其他人使用掂器,而且每次穩(wěn)定的代碼版本需要打上tag方便使用者選擇對(duì)應(yīng)的tag代碼)

上傳至cocoapods的公開的 倉(cāng)庫(kù) 使用 pod setup 或者 pod install 時(shí)會(huì)從倉(cāng)庫(kù)中下載到本地撇他,存放在電腦的 .cocoapods/repo/master 中召娜,這個(gè)倉(cāng)庫(kù)是cocoapods團(tuán)隊(duì)維護(hù)础钠,大部分開源代碼都放在這里顽悼,當(dāng)然本地放的只是項(xiàng)目的一些相關(guān)信息:

CAIStatusBar.podspec.json

{
  "name": "CAIStatusBar",
  "version": "0.0.1",
  "summary": "A simple indicator",
  "homepage": "https://github.com/apple5566/CAIStatusBar.git",
  "license": "MIT",
  "authors": {
    "apple5566": "zaijiank110@sohu.com"
  },
  "platforms": {
    "ios": "6.0"
  },
  "source": {
    "git": "https://github.com/apple5566/CAIStatusBar.git",
    "tag": "0.0.1"
  },
  "source_files": "CAIStatusBar/**/*.{h,m}",
  "resources": "CAIStatusBar/CAIStatusBar.bundle",
  "requires_arc": true
}

需要使用cocoapods的項(xiàng)目的Podfile文件說明

Podfile:

platform :ios,'8.0'
use_frameworks!
inhibit_all_warnings!

target 'HDDemo' do
    pod 'AFNetworking'
    pod 'MJRefresh'
end

2、pod使用本地路徑代碼 (不需要經(jīng)過類似cocoapods審核流程即可使用较木,本地代碼一改红符,pod update即可獲取最新代碼,但是一不小心代碼地址移動(dòng)或者刪除時(shí)伐债,會(huì)有問題)

Podfile:

platform :ios,'8.0'
use_frameworks!
inhibit_all_warnings!
target 'HDDemo' do
    pod 'AFNetworking', :path => '~/Documents/AFNetworking'
end

3预侯、pod使用源碼地址的代碼(每次pod update即可獲取給定地址的最新代碼,也可以選擇指定的tag峰锁,源碼每次push到git地址后萎馅,其他項(xiàng)目即可使用,無審核流程虹蒋,這種模式屬于比較靈活的方式)

Podfile:

platform :ios,'8.0'
use_frameworks!
inhibit_all_warnings!
target 'HDDemo' do
  # 只拉取FDDUITableViewDemoSwift/FDDBaseRepo這個(gè)下面的代碼, FDDUITableViewDemoSwift.podspec見下面
    pod 'FDDUITableViewDemoSwift/FDDBaseRepo', :git => 'https://github.com/erduoniba/FDDUITableViewDemoSwift.git' ,:tag => '0.1.0'
    pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :branch => 'dev'
    pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :commit => '082f8319af'
end

pod update --verbose --no-repo-update 即可拉取最新代碼

4糜芳、pod使用podspec文件來拉取代碼:

Podfile:

platform :ios,'8.0'
use_frameworks!
inhibit_all_warnings!
target 'HDDemo' do
    # 遠(yuǎn)程podspec地址
    pod 'FDDUITableViewDemoSwift', :podspec => 'https://raw.githubusercontent.com/erduoniba/FDDUITableViewDemoSwift/master/FDDUITableViewDemoSwift.podspec'
    # 本地podspec地址
    pod 'FDDUITableViewDemoSwift', :podspec => '/Users/denglibing/project/harryProject/FDDUITableViewDemoSwift/FDDUITableViewDemoSwift.podspec'
end

FDDUITableViewDemoSwift.podspec

podspec說明

Pod::Spec.new do |s|
    s.name         = 'FDDUITableViewDemoSwift'
    s.version      = "0.1.1"
    s.license      = { :type => 'MIT', :file => 'LICENSE' }
    s.author       = { 'denglibing' => 'denglibing@fangdd.com' }
    s.summary      = 'FDDUITableViewDemoSwift'

    s.platform     =  :ios, '8.0'
    s.homepage     = "https://github.com/erduoniba/FDDUITableViewDemoSwift"

    s.source       =  { :git => 'https://github.com/erduoniba/FDDUITableViewDemoSwift.git', :tag => "#{s.version}"}
    s.module_name  = 'FDDUITableViewDemoSwift'
    s.framework    = 'UIKit'
    s.requires_arc = true

    # Pod Dependencies

    s.subspec 'FDDBaseRepo' do |ss|
        ss.source_files = 'FDDUITableViewDemoSwift/FDDBaseRepo/*'
        ss.resources = ["FDDUITableViewDemoSwift/FDDBaseRepo/Resources/*"]
        ss.dependency 'PullToRefresher'
    end
end

5、pod使用自己的私有倉(cāng)庫(kù)來替換cocoapods的倉(cāng)庫(kù)魄衅,這樣同樣的不需要審核流程峭竣,自己管理所有的 podsepc文件,需要加上tag來拉取指定的代碼

使用Cocoapods創(chuàng)建私有podspec

  1. 創(chuàng)建并設(shè)置一個(gè)私有的Spec Repo晃虫。這個(gè)倉(cāng)庫(kù)你可以創(chuàng)建私有的也可以創(chuàng)建公開的皆撩,不過既然私有的Spec Repo,還是創(chuàng)建私有的倉(cāng)庫(kù)吧哲银。創(chuàng)建完成之后在Terminal中執(zhí)行如下命令

    # pod repo add [Private Repo Name] [GitHub HTTPS clone URL]
    $ pod repo add HDPodRepo https://github.com/erduoniba/HDPodRepo.git
    

    此時(shí)如果成功的話進(jìn)入到~/.cocoapods/repos目錄下就可以看到 HDPodRepo 這個(gè)目錄了扛吞。至此第一步創(chuàng)建私有Spec Repo完成。

  2. 創(chuàng)建Pod的所需要的項(xiàng)目工程文件荆责,并且有可訪問的項(xiàng)目版本控制地址滥比。

  3. 創(chuàng)建Pod所對(duì)應(yīng)的podspec文件。

  4. 本地測(cè)試配置好的podspec文件是否可用做院。(不合格問題也不大)

  5. 向私有的Spec Repo中提交podspec盲泛。

    $ cd path/FDDUITableViewDemoSwift.podspec
    $ pod repo push HDPodRepo FDDUITableViewDemoSwift.podspec  #前面是本地Repo名字 后面是podspec名字
    
    # 成功之后
    $ cd /Users/denglibing/.cocoapods/repos/HDPodRepo 
    $ tree
    .
    ├── FDDUITableViewDemoSwift
    │   ├── 0.1.1
    │   │   └── FDDUITableViewDemoSwift.podspec
    │   └── 0.1.2
    │       └── FDDUITableViewDemoSwift.podspec
    └── README.md
    # 私有庫(kù)自動(dòng)生成了最新的代碼
    
  6. 在個(gè)人項(xiàng)目中的Podfile中增加剛剛制作的好的Pod并使用。

    Podfile:

    source 'https://github.com/CocoaPods/Specs.git'          # 官方庫(kù)地址
    source 'https://github.com/erduoniba/HDPodRepo.git'     # 私有庫(kù)地址
    
    platform :ios,'8.0'
    use_frameworks!
    inhibit_all_warnings!
    target 'HDDemo' do
         pod 'FDDUITableViewDemoSwift'   # 私有庫(kù)地址里的FDDUITableViewDemoSwift項(xiàng)目
    end
    

    ?

  7. 更新維護(hù)podspec山憨。

    $ cd anyPath
    $ pod repo remove HDPodRepo #刪除本地的私有庫(kù)
    $ pod repo add HDPodRepo https://github.com/erduoniba/HDPodRepo.git #重新添加私有庫(kù)地址
    

    ?

一些錯(cuò)誤:

$ pod lib lint --verbose --no-clean --allow-warnings
We get the error below:

** BUILD FAILED **

The following build commands failed:
CompileSwift normal x86_64 /var/folders/yg/dlxwsn292j108t5qtlmgbtfh0000gn/T/CocoaPods/Lint/Pods/ReachabilitySwift/Reachability/Reachability.swift
CompileSwiftSources normal x86_64 com.apple.xcode.tools.swift.compiler
(2 failures)
...
...
...

Pods workspace available at /var/folders/yg/dlxwsn292j108t5qtlmgbtfh0000gn/T/CocoaPods/Lint/App.xcworkspace for inspection.

[!] Teste did not pass validation, due to 69 errors.

https://github.com/ashleymills/Reachability.swift/issues/146

解決:

在倉(cāng)庫(kù)主目錄建立 .swift-version 文件查乒,文件添加 "3.0" 即可
同時(shí)在對(duì)應(yīng)的 FDDUITableViewDemoSwift.podspec 目錄下也添加 .swift-version 文件
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市郁竟,隨后出現(xiàn)的幾起案子玛迄,更是在濱河造成了極大的恐慌,老刑警劉巖棚亩,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓖议,死亡現(xiàn)場(chǎng)離奇詭異虏杰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)勒虾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門纺阔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人修然,你說我怎么就攤上這事笛钝。” “怎么了愕宋?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵玻靡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我中贝,道長(zhǎng)囤捻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任邻寿,我火速辦了婚禮蝎土,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绣否。我一直安慰自己誊涯,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布枝秤。 她就那樣靜靜地躺著醋拧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪淀弹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天庆械,我揣著相機(jī)與錄音薇溃,去河邊找鬼。 笑死缭乘,一個(gè)胖子當(dāng)著我的面吹牛沐序,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播堕绩,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼策幼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了奴紧?” 一聲冷哼從身側(cè)響起特姐,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎黍氮,沒想到半個(gè)月后唐含,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浅浮,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年捷枯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滚秩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淮捆,死狀恐怖郁油,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情攀痊,我是刑警寧澤已艰,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站蚕苇,受9級(jí)特大地震影響哩掺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涩笤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一嚼吞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蹬碧,春花似錦舱禽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至罗心,卻和暖如春里伯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背渤闷。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工疾瓮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人飒箭。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓狼电,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親弦蹂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子肩碟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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