創(chuàng)建podspec公私庫

定義

私有pod: 個人理解,通過公司的服務(wù)器作為代碼倉庫保存的pod,除被分配了相應(yīng)權(quán)限的人(一般為公司內(nèi)部員工)外的其它人無法訪問該pod. 在組件化開發(fā)中,以私有的pod作為組件.

公共pod:公開的pod,例如常用的github中的支持pod的庫,能夠被任何人訪問.

基本步驟

1赂鲤、在自己的服務(wù)器創(chuàng)建代碼倉庫 
2、在本地clone一份畜伐,寫代碼
3辈双、創(chuàng)建并編輯podspec文件: `pod spec create podName`
4褒侧、驗證podspec文件(pod lib lint:本地驗證挖藏、pod spec lint:本地和遠(yuǎn)程驗證)
5议惰、打tag揽咕,上傳podspec
6、更新本地repo粟关,就能使用pod search找到自己發(fā)布的pod了

創(chuàng)建并編輯podspec

cd 到本地項目目錄并執(zhí)行 pod spec create podName 疮胖。這時候本地就生成了一個podName.podspec文件。
用編輯器打開該文件闷板,里面有很多字段描述你的podspec澎灸,這里只介紹簡單的用法,查看更多的字段請移步:http://guides.cocoapods.org/syntax/podspec.html

#
#  Be sure to run `pod spec lint AA.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         = "AA"
  s.version      = "0.0.1"
  s.summary      = "A short description of AA."

  # This description is used to generate tags and improve search results.
  #   * Think: What does it do? Why did you write it? What is the focus?
  #   * Try to keep it short, snappy and to the point.
  #   * Write the description between the DESC delimiters below.
  #   * Finally, don't worry about the indent, CocoaPods strips it!
  s.description  = <<-DESC
                   DESC

  s.homepage     = "http://EXAMPLE/AA"
  # s.screenshots  = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"


  # ―――  Spec License  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  Licensing your code is important. See http://choosealicense.com for more info.
  #  CocoaPods will detect a license file if there is a named LICENSE*
  #  Popular ones are 'MIT', 'BSD' and 'Apache License, Version 2.0'.
  #

  s.license      = "MIT (example)"
  # s.license      = { :type => "MIT", :file => "FILE_LICENSE" }


  # ――― Author Metadata  ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  Specify the authors of the library, with email addresses. Email addresses
  #  of the authors are extracted from the SCM log. E.g. $ git log. CocoaPods also
  #  accepts just a name if you'd rather not provide an email address.
  #
  #  Specify a social_media_url where others can refer to, for example a twitter
  #  profile URL.
  #

  s.author             = { "lixp" => "420436097@qq.com" }
  # Or just: s.author    = "lixp"
  # s.authors            = { "lixp" => "420436097@qq.com" }
  # s.social_media_url   = "http://twitter.com/lixp"

  # ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  If this Pod runs only on iOS or OS X, then specify the platform and
  #  the deployment target. You can optionally include the target after the platform.
  #

  # s.platform     = :ios
  # s.platform     = :ios, "5.0"

  #  When using multiple platforms
  # s.ios.deployment_target = "5.0"
  # s.osx.deployment_target = "10.7"
  # s.watchos.deployment_target = "2.0"
  # s.tvos.deployment_target = "9.0"


  # ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  Specify the location from where the source should be retrieved.
  #  Supports git, hg, bzr, svn and HTTP.
  #

  s.source       = { :git => "http://EXAMPLE/AA.git", :tag => "#{s.version}" }


  # ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  CocoaPods is smart about how it includes source code. For source files
  #  giving a folder will include any swift, h, m, mm, c & cpp files.
  #  For header files it will include any header in the folder.
  #  Not including the public_header_files will make all headers public.
  #

  s.source_files  = "Classes", "Classes/**/*.{h,m}"
  s.exclude_files = "Classes/Exclude"

  # s.public_header_files = "Classes/**/*.h"


  # ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  A list of resources included with the Pod. These are copied into the
  #  target bundle with a build phase script. Anything else will be cleaned.
  #  You can preserve files from being cleaned, please don't preserve
  #  non-essential files like tests, examples and documentation.
  #

  # s.resource  = "icon.png"
  # s.resources = "Resources/*.png"

  # s.preserve_paths = "FilesToSave", "MoreFilesToSave"


  # ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  Link your library with frameworks, or libraries. Libraries do not include
  #  the lib prefix of their name.
  #

  # s.framework  = "SomeFramework"
  # s.frameworks = "SomeFramework", "AnotherFramework"

  # s.library   = "iconv"
  # s.libraries = "iconv", "xml2"


  # ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  If your library depends on compiler flags you can set them in the xcconfig hash
  #  where they will only apply to your library. If you depend on other Podspecs
  #  you can include multiple dependencies to ensure it works.

  # s.requires_arc = true

  # s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
  # s.dependency "JSONKit", "~> 1.4"

end

驗證podspec文件

執(zhí)行命令 pod lib lint進(jìn)行本地檢驗遮晚。

如果是第一次使用性昭,需要先注冊

pod trunk register yourmail@gmail.com 'yourName'

檢查是否注冊成功
pod trunk me

驗證

pod lib lint

打tag,上傳podspec

git tag -m"first release iOS_Category with podspec" "0.0.1"
git push --tags

push

pod trunk push podName.podspec

pod repo push xyj-xyjpodspec【私庫名】 XYJBaseUI.podspec【podspec文件】 --allow-warnings[允許警告]

更新本地repo

pod repo update

然后就可以pod search

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末县遣,一起剝皮案震驚了整個濱河市糜颠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌萧求,老刑警劉巖其兴,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異夸政,居然都是意外死亡元旬,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門守问,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匀归,“玉大人,你說我怎么就攤上這事耗帕∧露耍” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵仿便,是天一觀的道長徙赢。 經(jīng)常有香客問我,道長探越,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任窑业,我火速辦了婚禮钦幔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘常柄。我一直安慰自己鲤氢,他們只是感情好搀擂,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著卷玉,像睡著了一般哨颂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上相种,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天威恼,我揣著相機(jī)與錄音,去河邊找鬼寝并。 笑死箫措,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衬潦。 我是一名探鬼主播斤蔓,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼镀岛!你這毒婦竟也來了弦牡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤漂羊,失蹤者是張志新(化名)和其女友劉穎驾锰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拨与,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡稻据,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了买喧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捻悯。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖淤毛,靈堂內(nèi)的尸體忽然破棺而出今缚,到底是詐尸還是另有隱情,我是刑警寧澤低淡,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布姓言,位于F島的核電站,受9級特大地震影響蔗蹋,放射性物質(zhì)發(fā)生泄漏何荚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一猪杭、第九天 我趴在偏房一處隱蔽的房頂上張望餐塘。 院中可真熱鬧,春花似錦皂吮、人聲如沸戒傻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽需纳。三九已至芦倒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間不翩,已是汗流浹背兵扬。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留慌盯,地道東北人周霉。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像亚皂,于是被迫代替她去往敵國和親俱箱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

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