CocoaPods 的使用

制作公有的 pod:
前期準備
首先要安裝 CocoaPods
如果已安裝 CocoaPods 并且 Xocde 版本是8或者更高版本,升級 CocoaPods陨舱。

創(chuàng)建本地的項目倒慧,將要開源的代碼寫在項目中摆出,同步到 GitHub 上掖举,同步的時候注意快骗,在 GitHub 上創(chuàng)建項目的時候,項目名字以及介紹自己寫塔次,其余的選擇默認的最好滨巴。

同步完了要打 tag,可以直接在 GitHub 上打 tag

在本地項目文件夾中通過命令 pod spec create XXXXX 創(chuàng)建 podspec 文件俺叭,XXXXX最好就是你的項目名字。

修改 podspec 文件泰偿,大致如下:

#
#  Be sure to run `pod spec lint GFCommonView.podspec' to ensure this is a
#  valid spec and to remove all comments including this before submitting the spec.
#
#  To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html
#  To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/
#

Pod::Spec.new do |s|

  # ―――  Spec Metadata  ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  These will help people to find your library, and whilst it
  #  can feel like a chore to fill in it's definitely to your advantage. The
  #  summary should be tweet-length, and the description more in depth.
  #

  s.name         = "CYTestCocoaPods"
  s.version      = "0.0.1"
  s.summary      = "Test CocoaPods"


  s.description  = <<-DESC
                   Test CocoaPods
                   DESC

  s.homepage     = "https://github.com/chenyu1520/CYTestCocoaPods"

  s.license      = "MIT"
  s.author             = { "chenyu" => "chenyu1520@gmail.com" }

   s.platform     = :ios, "8.0"

   s.ios.deployment_target = "8.0"

  s.source       = { :git => "https://github.com/chenyu1520/CYTestCocoaPods.git", :tag => "#{s.version}" }

  s.framework  = "UIKit"
  s.requires_arc = true

    s.subspec 'MyTest' do |ssp|
      ssp.source_files = 'CYTestCocoaPods/MyTest/*.{h,m}'
    end


 end

s.version 要和 GitHub 上的一致熄守。

關于 Swift 的設置用如下命令:
echo "3.0" > .swift-version
驗證 podspec 文件,采用忽略警告的方式:
pod spec lint CYTestCocoaPods.podspec --allow-warnings

注冊:
pod trunk register chenyu1520@gmail.com 'ChenYu' --description='CYTestCocoaPods'
需要到郵箱點鏈接驗證一下耗跛。

看提示或者查詢 trunk 后的信息:
pod trunk me
大致如下:
Name: ChenYu
Email: chenyu1520@gmail.com
Since: January 6th, 09:43
Pods: None
Sessions:
January 6th, 09:43 - May 14th, 09:46. IP: 221.217.221.173 Description: CYTestCocoaPods

最后執(zhí)行:
pod trunk push --allow-warnings

可以看到如下信息


提交成功.png

雖然在終端中可能搜索不到裕照,但是可以在其他項目中直接使用了。


制作私有 pod调塌,有兩種方式:

  1. 每一個私有的 pod 制作好了以后晋南,都單獨的添加到/Users/xxx/.cocoapods/repos 中,Podfile 文件中需要聲明 .git 地址羔砾。
    這樣做會有一些弊端负间,一般 pod 庫都是放在一個工程中,在執(zhí)行 pod repo add CYPods https://git.coding.net/ecanfly/MyPrivatePod.git的時候姜凄,會把工程中的所有文件同步過來政溃,在執(zhí)行pod repo push CYPods MyPrivatePod.podspec會報錯,說在/Users/xxx/.cocoapods/repos/CYPods目錄下有不能提交的代碼态秧,還需要做刪除操作董虱,把 MyPrivatePod.podspec 以外的所有文件都刪除。有幾個文件可以不刪除申鱼,如果沒有刪除愤诱,其他項目組成員在 pull 代碼的時候,就會把這些文件 pull 下來捐友,增加存儲空間和 pull 的時間淫半。
  2. 單獨創(chuàng)建一個倉庫,用來管理其他的 pod匣砖。單獨創(chuàng)建的這個倉庫不需要pod spec create XXXXX 創(chuàng)建 podspec 文件撮慨。
    • 需要執(zhí)行幾個命令竿痰,把他存入/Users/xxx/.cocoapods/repos中,命令如下:pod repo add CYPodSpec https://git.coding.net/ecanfly/CYPodSpec.git砌溺。注意https://git.coding.net/ecanfly/CYPodSpec.git是你遠端已經存在倉庫影涉。這里如果不成功,很有可能是不能正確的訪問 https://git.coding.net规伐,這時候用 SourceTree 把代碼克隆一份到桌面蟹倾,克隆的時候會讓你輸入 https://git.coding.net 的用戶名和密碼。再次執(zhí)行之前的命令就可以成功的在 .cocoapods/repos中創(chuàng)建文件夾猖闪,并關聯到遠端鲜棠。
    • 現在做好一個私有的庫,并使用命令pod spec create XXXXX創(chuàng)建 podspec 文件培慌,修改這個文件結束后豁陆,通過pod lib lint xxx.podspec --verbose --use-libraries --allow-warnings做本地驗證。沒有問題后打 tag 并 push 到遠端吵护。需要注意 podspec 文件夾中的 s.version 需要在遠端有對應的 tag盒音。通過pod spec lint xxx.podspec --verbose --use-libraries --allow-warnings做遠程驗證。
    • 通過pod repo push CYPodSpec xxx .podspec --verbose --use-libraries --allow-warnings將私有庫放置在.cocoapods/repos/CYPodSpec文件夾下馅而,這個命令自帶推送操作祥诽,會把 CYPodSpec 倉庫同步到遠端。
    • 如果更新了 pod 庫
      • 要修改 podspec 文件中的版本號
      • 本地驗證
      • 打 tag 并推送到遠端
      • 遠端驗證
      • 執(zhí)行 pod repo push CYPodSpec xxx .podspec --verbose --use-libraries --allow-warnings 瓮恭,CYPodSpec 中對應的私有庫文件夾中會多出一個版本號對應的文件夾雄坪,里面存放了 xxx .podspec 文件。

(如果是庫中拖拽了其他的庫當源碼屯蹦,遇到問題的話维哈,可以參考下面的文檔)[http://www.reibang.com/p/8566983dae1f]

參考:
私有庫制作的第一種方式參考這個

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市登澜,隨后出現的幾起案子笨农,更是在濱河造成了極大的恐慌,老刑警劉巖帖渠,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谒亦,死亡現場離奇詭異,居然都是意外死亡空郊,警方通過查閱死者的電腦和手機份招,發(fā)現死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狞甚,“玉大人锁摔,你說我怎么就攤上這事『呱螅” “怎么了谐腰?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵孕豹,是天一觀的道長。 經常有香客問我十气,道長励背,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任砸西,我火速辦了婚禮叶眉,結果婚禮上,老公的妹妹穿的比我還像新娘芹枷。我一直安慰自己衅疙,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布鸳慈。 她就那樣靜靜地躺著饱溢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪走芋。 梳的紋絲不亂的頭發(fā)上绩郎,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音绿聘,去河邊找鬼。 笑死次舌,一個胖子當著我的面吹牛熄攘,可吹牛的內容都是我干的。 我是一名探鬼主播彼念,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挪圾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了逐沙?” 一聲冷哼從身側響起哲思,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吩案,沒想到半個月后棚赔,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡徘郭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年靠益,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片残揉。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡胧后,死狀恐怖,靈堂內的尸體忽然破棺而出抱环,到底是詐尸還是另有隱情壳快,我是刑警寧澤纸巷,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站眶痰,受9級特大地震影響瘤旨,放射性物質發(fā)生泄漏。R本人自食惡果不足惜凛驮,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一裆站、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧黔夭,春花似錦宏胯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至婚惫,卻和暖如春氛赐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背先舷。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工艰管, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蒋川。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓牲芋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親捺球。 傳聞我的和親對象是個殘疾皇子缸浦,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內容