1 進(jìn)入Github網(wǎng)站www.github.com登陸自己的賬號(hào)后
2 建立一個(gè)新的倉庫
創(chuàng)建新的倉庫
3 填寫倉庫信息
填寫倉庫信息
4 創(chuàng)建完畢后
創(chuàng)建成功
二运准、上傳代碼到創(chuàng)建的倉庫
1 選擇clone 到本地倉庫
mac 電腦中,有g(shù)ithub的客戶端
github MAC客戶端
進(jìn)入github網(wǎng)站后眷蜓,右邊欄
clone
也可以用命令終端的
// 代碼倉庫clone 地址 git clonehttps://github.com/boyXiong/XWSwiftRefreshT.git
2.編寫代碼
寫入的代碼
3.創(chuàng)建一個(gè)tag 版本
創(chuàng)建一個(gè)Tag
如果這里不會(huì),可以看我的另一篇文章Git tag的使用
http://www.reibang.com/p/32054f3e415d
4.上傳到github
上傳到github倉庫
三、向本地git倉庫中添加創(chuàng)建Pods依賴庫所需文件
1 這個(gè)文件需要放在clone 到的本地倉庫目錄下(需要在終端cd進(jìn)入clone的那個(gè)目錄下)
2 創(chuàng)建 podspec
// 在命令終端pod spec create XWSwiftRefreshT
成功后
創(chuàng)建podspec成功
3 編寫podspec文件,可以使用Vim,或者Xcode胎围,Sublime也可以吁系,這是一個(gè)Ruby文件
Pod::Spec.newdo|s|# 名稱 使用的時(shí)候pod search [name]s.name ="XWSwiftRefreshT"# 代碼庫的版本s.version ="0.1.2"# 簡介s.summary ="The easiest way to use pull-to-refresh with Swift2.0 program language."# 主頁s.homepage ="https://github.com/boyXiong/XWSwiftRefreshT"# 許可證書類型,要和倉庫的LICENSE 的類型一致s.license ="MIT"# 作者名稱 和 郵箱s.author = {"boyXiong"=>"relv@qq.com"}# 作者主頁 s.social_media_url ="http://blog.csdn.net/boyXiong.com/"# 代碼庫最低支持的版本s.platform = :ios,"8.0"# 代碼的Clone 地址 和 tag 版本s.source = { :git =>"https://github.com/boyXiong/XWSwiftRefreshT.git", :tag =>"0.1.2"}# 如果使用pod 需要導(dǎo)入哪些資源s.source_files ="XWSwiftRefreshT/**/*.{swift}"s.resources ="XWSwiftRefreshT/Icon/xw_icon.bundle"# 框架是否使用的ARCs.requires_arc =trueend
4 編寫完成后痊远,先進(jìn)行本地檢查垮抗,使用,如何可以就是綠色,不然會(huì)報(bào)錯(cuò)
//pod spec lint [podspec 的路徑]pod spec lint ./XWSwiftRefreshT.podspec
5 注意 這個(gè)命令的檢查原理碧聪,是調(diào)用Xcode app的命令檢測如果Mac上安裝了兩個(gè)Xcode那么他的檢查是根據(jù)Application/Xcode.app/這種路徑來的冒版,兩個(gè)Xcode 就要確保Xcode.app是最新的正式版本不是測試版本
6 然后可以發(fā)送到cocoapod管理了
//pod trunkpush[podspec 的路徑]pod trunkpush./XWSwiftRefreshT.podspec
上傳到cocoapod成功
7.到這里如果成功就搜索的到,那么就是說可以成功使用了
pod search XWSwiftRefreshT
成功搜索到框架
Paste_Image.png
這是我整理的開發(fā)常用Category 用pod 搜索 TTCategory 就可以
github連接:https://github.com/yangyangFeng/TTCategory.git
大家有新的,好用的category也可以發(fā)給我我回持續(xù)更新.
一逞姿、創(chuàng)建的github倉庫
1 進(jìn)入Github網(wǎng)站www.github.com登陸自己的賬號(hào)后
2 建立一個(gè)新的倉庫
創(chuàng)建新的倉庫
3 填寫倉庫信息
填寫倉庫信息
4 創(chuàng)建完畢后
前面的步驟比較簡單相信大家很容易就能clone到本地,如果沒有g(shù)ithub個(gè)客戶端的可以去下一個(gè),沒有的話用命令也是可以的
接下來把你想要托管的代碼放入本地倉庫中
這里看到 .podspec 和TTcategory 是同一級目錄,下面設(shè)置 podspec 文件,文件路徑的時(shí)候要用到這里.
四辞嗡、注冊TRUNK
在注冊trunk之前,我們需要確認(rèn)當(dāng)前的CocoaPods版本是否足夠新滞造。trunk需要pod在0.33及以上版本续室,如果你不滿足要求,打開Terminal使用ruby的gem命令更新pod:
sudo geminstallcocoapods
更新結(jié)束后谒养,我們開始注冊trunk:
pod trunk register aaaaaaag@163.com'fengyangyang'--verbose輸入你的郵箱,并設(shè)置你的昵稱.隨后會(huì)給你發(fā)送一封驗(yàn)證郵件.
郵箱以及用戶名請對號(hào)入座挺狰。用戶名我使用的是Github上的用戶名。--verbose參數(shù)是為了便于輸出注冊過程中的調(diào)試信息买窟。執(zhí)行上面的語句
后丰泊,你的郵箱將會(huì)受到一封帶有驗(yàn)證鏈接的郵件,如果沒有請去垃圾箱找找始绍,有可能被屏蔽了瞳购。點(diǎn)擊郵件的鏈接就完成了trunk注冊流程。使用下面的命令可以
向trunk服務(wù)器查詢自己的注冊信息:
pod trunk me
輸出如下信息就表示你注冊成功亏推,可以進(jìn)行下面的流程:
五学赛、添加Podspec
為你的代碼添加podspec描述文件;
$pod lib lint
六、配置podspec描述文件
這一步與更換trunk方式前的操作完全一樣吞杭。什么是podspec描述文件呢盏浇?簡單地講就是讓CocoaPods搜索引擎知道你的代碼的作者、版本號(hào)芽狗、源代碼地址缠捌、依賴庫等信息的文件。任何支持CocoaPods的開源代碼都必須有podspec文件。CocoaPods在github中用一個(gè)repo來管理所有支持CocoaPods的開源代碼:https://github.com/CocoaPods/Specs曼月。
podspec文件很簡單,但是第一次做不是很容易.我推薦看一下 貓爪的 blog點(diǎn)擊打開鏈接
blog里面介紹的很詳細(xì),在此也要感謝貓爪,為我解答了遇到的問題.
設(shè)置好podspec后,我們要驗(yàn)證一下,podspec 時(shí)候通過驗(yàn)證
$pod lib lint
如果一切正常谊却,這條命令執(zhí)行完后會(huì)出現(xiàn)下面的輸出:
-> 你的庫名 (1.0.0) 你的庫名 passed validation.
到此,pod驗(yàn)證就結(jié)束了哑芹。 需要說明的是炎辨,在執(zhí)行pod驗(yàn)證命令的時(shí)候,打印出了任何warning或者error信息聪姿,驗(yàn)證都會(huì)失敳晗簟!如果驗(yàn)證出現(xiàn)異常末购,打印的信息會(huì)很詳細(xì)破喻,大家可以根據(jù)對應(yīng)提示做出修改。
七盟榴、本地git倉庫修改內(nèi)容上傳到github倉庫
依次執(zhí)行以下命令:
$ git add -A && gitcommit-m"Release 1.0.0."$ git tag'1.0.0'$ git push--tags$ git push originmaster
八曹质、現(xiàn)在如果你的 podspec通過驗(yàn)證了,代碼push 到github并且 打好tag,那么現(xiàn)在可以進(jìn)行最后一步了.將podspec文件通過trunk推送給CocoaPods服務(wù)器(PS:如果這部分出錯(cuò),那么你需要先對應(yīng)錯(cuò)誤修改,然后重復(fù) 5~8 過程)
$ pod trunkpush./文件名.podspec? ? 如果接下來沒有提示任何error 和警告的話,那么恭喜你!你的代碼就已經(jīng)上傳到cocoapod上了.
把項(xiàng)目clone到本地然后在根目錄下新建MyPodDemo.podspec
或使用命令
$ pod spec create?MyPodDemo
Spec文件編寫:
Pod::Spec.new do |s|
s.name = "MyPodDemo"
s.version = "0.0.1"
s.summary = "A short description of MyPodDemo."
s.description = <<-DESC
A longer description of MyPodDemo in Markdown format.
* Think: Why did you write this? What is the focus? What does it do?
* CocoaPods will be using this to generate tags, and improve search results.
* Try to keep it short, snappy and to the point.
* Finally, don't worry about the indent, CocoaPods strips it!
DESC
s.homepage = "https://github.com/goingta/MyPodDemo"
s.license = "MIT"
s.author = { "goingta" => "tangle1128@gmail.com" }
s.source = { :git => "https://github.com/goingta/MyPodDemo.git", :tag => "0.0.1" }
s.source_files = "MyPodDemo/Src", "MyPodDemo/Src/**/*.{h,m}"
s.requires_arc = true
# s.framework = "SomeFramework"
# s.frameworks = "SomeFramework", "AnotherFramework"
# s.library = "iconv"
# s.libraries = "iconv", "xml2"
# s.dependency "JSONKit", "~> 1.4"
# s.dependency "AFNetworking", "~> 2.2.4"
end
自解析:
name: 導(dǎo)入pod后的目錄名
version: 當(dāng)前版本號(hào)
deployment_target: 配置的target
prefix_header_file: 預(yù)編譯頭文件路徑,將該文件的內(nèi)容插入到Pod的pch文件內(nèi)
source: 來源的具體路徑站欺,是http鏈接還是本地路徑
requires_arc: 是否需要arc
source_files: 指定該目錄下包含哪些文件
其他可選參數(shù)還包括:
dependency: 指定依賴姨夹,如果依賴的庫不存在或者依賴庫的版本不符合要求將會(huì)報(bào)錯(cuò)
libraries: 指定導(dǎo)入的庫,比如sqlite3
frameworks: 指定導(dǎo)入的framework
weak_frameworks: 弱鏈接矾策,比如說一個(gè)項(xiàng)目同時(shí)兼容iOS6和iOS7匀伏,但某一個(gè)framework只在iOS7上有,這時(shí)候如果用強(qiáng)鏈接蝴韭,那么在iOS7上運(yùn)行就會(huì)crash,使用weak_frameworks可以避免這種情況熙侍。
整個(gè)podspec語法是一個(gè)嵌套結(jié)構(gòu)從Pod::Spec.new do
|s|到最后一個(gè)end是最大的循環(huán)榄鉴,表示整個(gè)podspec導(dǎo)入的文件。中間每一個(gè)subspec到end結(jié)束是一個(gè)子目錄蛉抓,Pods會(huì)為每個(gè)
subspec創(chuàng)建一個(gè)邏輯目錄庆尘,相當(dāng)于Xcode的group概念。|**|中間是subspec的名字巷送,可以隨便命名驶忌,但后面使用的名稱必須一致。
通配符說明
a{bb,bc}def.{h,m}表示四個(gè)文件abbdef.h abbdef.m abcdef.h abcdef.m
*.{h,m,mm}表示所有的.h .m .mm文件
Class/**/*.{h,m}表示Class目錄下的所有.h .m文件
寫完podspec文件后使用pod spec lint驗(yàn)證spec是否合格,有error則需要修改
spec文件驗(yàn)證
上傳代碼至github
上傳podspec文件到CocoaPods倉庫(fork一下,修改完成后在push上去等待審核)
將我們剛剛生成的MyPodDemo.spec 文件上傳到Cocoapods官方specs倉庫中 :
鏈接為:https://github.com/CocoaPods/Specs
私有庫實(shí)現(xiàn),編寫podfile
如果由于某些原因我們編寫的庫不能公開,但是又想使用pods來進(jìn)行管理,要怎么辦呢?
首先我們要將我們剛剛在github上建的倉庫改為Private(不然還用Public搞毛啊)
然后修改我們項(xiàng)目的podfile,與已加入Cocopods倉庫的公有庫相比我們只需要指明私有庫低git地址,如下:
platform :ios, '6.0'
pod 'MyPodDemo', :git => 'https://github.com/goingta/MyPodDemo.git' //私有庫
pod 'CocoaLumberjack'//公有庫
版本控制和沖突(引用自http://objccn.io/issue-6-4/)
CocoaPods 使用語義版本控制 – Semantic
Versioning?命名約定來解決對版本的依賴。由于沖突解決系統(tǒng)建立在非重大變更的補(bǔ)丁版本之間付魔,這使得解決依賴關(guān)系變得容易很多聊品。例如,兩個(gè)不同
的 pods 依賴于 CocoaLumberjack
的兩個(gè)版本几苍,假設(shè)一個(gè)依賴于2.3.1翻屈,另一個(gè)依賴于?2.3.3,此時(shí)沖突解決系統(tǒng)可以使用最新的版本?2.3.3妻坝,因?yàn)檫@個(gè)可以向后
與?2.3.1?兼容伸眶。
但這并不總是有效。有許多第三方庫并不使用這樣的約定刽宪,這讓解決方案變得非常復(fù)雜厘贼。
當(dāng)然,總會(huì)有一些沖突需要手動(dòng)解決圣拄。如果一個(gè)庫依賴于 CocoaLumberjack 的?1.2.5嘴秸,另外一個(gè)庫則依賴于?2.3.1,那么只有最終用戶通過明確指定使用某個(gè)版本來解決沖突售担。
配置非ARC文件(8.5號(hào)補(bǔ)充)
前幾天項(xiàng)目中由于歷史原因,導(dǎo)致有一個(gè)私有的pods庫中某幾個(gè)文件是在非ARC時(shí)代寫的,如果要進(jìn)行修改工程量浩大,于是乎要對這幾個(gè)文件單獨(dú)處
理,這幾個(gè)文件不使用arc其他文件使用arc,網(wǎng)上查了一些資料,只需要對source_file進(jìn)行修改并排除那幾個(gè)不使用ARC的文件就可以了,大
致修改如下:
Pod::Spec.new do |s| s.name = "MyPodDemo" s.version = "0.0.1" s.summary = "A short description of MyPodDemo. s.homepage = "https://github.com/goingta/MyPodDemo" s.license = "MIT" s.author = { "goingta" => "tangle1128@gmail.com" } s.source = { :git => "https://github.com/goingta/MyPodDemo.git", :tag => "0.0.1" } s.source_files = "MyPodDemo"non_arc_files = 'MyPodDemo/NoArcFile1.{h,m}','MyPodDemo/NoArcFile2.{h,m}'s.requires_arc = trues.exclude_files = non_arc_filess.subspec 'no-arc' do |sna|sna.requires_arc = falsesna.source_files = non_arc_filesendend
回退Cocoapods歷史版本(2015.3.17號(hào)補(bǔ)充)
查看當(dāng)前安裝了哪些版本
gem list --local | grep cocoapods
如果你安裝了多個(gè)版本(如0.35和0.20.2)那么你將看到
cocoapods (0.34, 0.20.2)
cocoapods-core (0.33, 0.20.2)
cocoapods-downloader (0.2.0, 0.1.2)
先刪除已經(jīng)裝過的版本(可能有幾個(gè),卸載的時(shí)候會(huì)讓你輸入1,2..n選擇卸載那個(gè)版本
sudo gem uninstall cocoapods
或者強(qiáng)制卸載某一個(gè)版本
gem uninstall cocoapods -v 0.20.2
安裝某一個(gè)版本
sudo gem install cocoapods -v 0.35.0
處理?Use the `$(inherited)` flag 異常(2015.6.03補(bǔ)充)
有時(shí)候在pod update之后會(huì)遇到下面錯(cuò)誤:
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
雖然對項(xiàng)目編譯沒什么影響,但是看著還是挺不舒服的.解決辦法就是
找到工程的 targets 點(diǎn)擊工程名 ?Build Settings -> Other linker flags -> 添加 $(inherited)
Cocoapods制作
1赁遗、創(chuàng)建podspec文件
創(chuàng)建命令
$ pod speccreateLXToolBar
podspec內(nèi)容設(shè)置
##? Be sure to run `pod spec lint LXToolBar.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.newdo|s|? s.name? ? ? ? ="LXToolBar"s.version? ? ? ="0.0.1"s.summary? ? ? ="定制的工具條,類似UITabBar族铆,使用AutoLayout技術(shù)岩四,支持橫豎屏切換"s.homepage? ? ="https://github.com/xx-li/LXToolBar"s.license? ? ? ='MIT's.author? ? ? = {"xx-li"=>"13348782277@163.com"}? s.platform? ? = :ios,'6.0's.source? ? ? = { :git =>"https://github.com/xx-li/LXToolBar.git", :tag =>"0.0.1"}? s.source_files? ='LXToolBar/*','LXToolBar/**/*.{h,m}'s.exclude_files ='LXToolBarDemo's.frameworks ='Foundation','CoreGraphics','UIKit's.requires_arc =true# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }s.dependency"LXLayoutButton","~> 0.0.1"end
2、本地git倉庫修改內(nèi)容上傳到github倉庫
$git add -A&& git commit -m"Release 1.0.0."$git tag'1.0.0'$git push --tags$git push origin master
該文件是ruby文件哥攘,里面的條目都很容易知道含義剖煌。
其中需要說明的又幾個(gè)參數(shù):
s.license
Pods依賴庫使用的license類型,大家填上自己對應(yīng)的選擇即可逝淹。
s.source_files
表示源文件的路徑耕姊,注意這個(gè)路徑是相對podspec文件而言的。
s.frameworks
需要用到的frameworks栅葡,不需要加.frameworks后綴茉兰。
3、上傳
CocoaPods 0.33中加入了Trunk服務(wù)欣簇。
要想使用Trunk服務(wù)规脸,首先你需要注冊自己的電腦。這很簡單熊咽,只要你指明你的郵箱地址(一般為spec文件中的)和名稱即可莫鸭。
$pod trunk register13348782277@163.com"xx-li"--description='你的描述'
至此,可以通過以下命令來方便地發(fā)布和升級你的Pod横殴!可以在后面加--verbose來查看log
$ pod trunkpushNAME.podspec
當(dāng)然被因,如果你的pod是由多人維護(hù)的,你也可以添加其他維護(hù)者
podtrunk add-owner ARAnalytics kyle@cocoapods.org
4、碰到的問題
使用pod trunk register 13348782277@163.com "xx-li"無法收到郵件
將郵箱換成QQ郵箱后OK
執(zhí)行pod trunk register無法收到郵件梨与,然后換成其他郵箱執(zhí)行push堕花,報(bào)錯(cuò):[!] You are not allowed to push new versions for this pod.
可以先調(diào)用pod trunk me查看當(dāng)前電腦注冊的信息
lixinxingdeiMac:LXLayoutButtonlixinxing$pod trunk me? ? -Name:xx-li? -Email:x@devlxx.com? -Since:November10th,02:47-Pods:-LXToolBar-Sessions:-November10th,02:47-March18th,201600:34.IP:218.17.157.19Description:iMac27-November11th,00:38-March18th,201600:52.IP:218.17.157.19Description:iMac27-November11th,00:55-March18th,201601:14.IP:218.17.157.19Description:iMac27
可以調(diào)用pod trunk info LXLayoutButton查看被禁止的pod的信息
lixinxingdeiMac:LXLayoutButtonlixinxing$podtrunkinfoLXLayoutButtonLXLayoutButton-Versions:-0.0.1(2015-04-1301:47:39UTC)-Owners:-xx-li<13348782277@163.com>
如果剛好此pod所擁有的這個(gè)郵箱無法收到郵件,那就只有更換郵箱了蛋欣,更換郵箱需要申訴
5航徙、參考博文
Publish Your Pods on CocoaPods with Trunk
1.怎么查看本地有多少個(gè)repos呢?
命令 ?pod repo可以知道本地有幾個(gè)repo!!
SZ-lingdaiping:TestPodFrameworkDemo yohunl$ pod repo
master
- Type: git (master)
- URL:https://github.com/CocoaPods/Specs.git
- Path: /Users/yohunl/.cocoapods/repos/master
1 repo
剛剛從中可以看出,其不僅列出了本地共有多少個(gè)repo,還包括每個(gè)repo的地址
2.對于一個(gè)repo下有很多個(gè)podspec,例如master下有成百上千個(gè),那么我們怎么統(tǒng)一驗(yàn)證他們是否都符合規(guī)范呢?
例如我們可以用命令進(jìn)入~/.cocoapods/repos/yohunlPodSpecs下執(zhí)行的pod
repo lint .(有一個(gè)點(diǎn)的)是驗(yàn)證這個(gè)repo下所有的
/Users/yohunl/.cocoapods/repos/yohunl
SZ-lingdaiping:yohunl yohunl$ pod repo lint .
Linting spec repo `yohunl`
.
Analyzed 1 podspecs files.
All the specs passed validation.
3.cocoapods的常用命令
pod list ?列出所有可用的第三方庫
pod search query 搜包含query的第三方庫 ? 注意:這兩個(gè)命令只搜存在于本地/Users/yohunl/.cocoapods/ 下的文件
如果搜索網(wǎng)絡(luò)的,可以先更新本地 ?pod repo update master,然后再搜索
pod lib create frameworkName ?創(chuàng)建一個(gè)framework工程
pod lib lint 驗(yàn)證一個(gè)podspec文件是否有錯(cuò)誤
podinstall--no-repo-update錯(cuò)誤
這里的參數(shù)—no-repo-update,是告訴cocoapods不要更新repo.有么有感覺每次pod install都很慢,那是因?yàn)槊恳淮味紩?huì)先更新本地的repo,加上此參數(shù),就跳過了這個(gè)過程,將會(huì)很快
pod init 可以建立一個(gè)空的podfile
建立pod的spec文件 ? pod spec create spec名字http://www.theonlylars.com/blog/2013/01/20/cocoapods-creating-a-pod-spec/
pod install命令時(shí)會(huì)引發(fā)許多操作。要想深入了解這個(gè)命令執(zhí)行的詳細(xì)內(nèi)容陷虎,可以在這個(gè)命令后面加上--verbose
4.其它使用我們建立的framework的方式
當(dāng)我們添加
source'https://github.com/yohunl/yohunlSpecs.git'
source'https://github.com/CocoaPods/Specs.git'
并且執(zhí)行pod install后
進(jìn)入.cocoapods文件夾,可以看到 ?又多了一個(gè)repo:yohunl!!!
這說明什么問題呢?
這說明我么之前的
pod repo add yohunlSpecs ?git@github.com:yohunl/yohunlSpecs.git
pod repo push yohunlSpecs YohunlUtilsPod.podspec
這兩句話只是為了給https://github.com/yohunl/yohunlSpecs中添加spec文件啊.當(dāng)添加完成后,其實(shí)我們可以刪除添加到本地的repo了
刪除repo的命令
pod repo remove yohunlSpecs ? ? [pod repo remove ?repo名稱]
我們刪除我們添加的私有庫 [哈哈,其實(shí)你都顯示了隱藏目錄了,也可以直接進(jìn)去直接刪除文件夾的!]
pod repo remove yohunl
pod repo remove yohunlSpecs
刪除后,可以看到
你再執(zhí)行pod install
發(fā)現(xiàn) 系統(tǒng)會(huì)自己根據(jù)
source'https://github.com/yohunl/yohunlSpecs.git'
source'https://github.com/CocoaPods/Specs.git'
去下載對應(yīng)的repos
如果不加入repos(也就是不添加podspec文件到系統(tǒng)的.cocopods文件夾下).能不能使用cocoapods呢?也是可以的
target?'TestPodFrameworkDemo'?do
pod?'YohunlUtilsPod'?,?:path?=>?'/Users/yohunl/YohunlUtilsPod'
end
target?'TestPodFrameworkDemoTests'?do
end
當(dāng)我們下載了一個(gè)含有podspec文件的代碼后,如果想使用它,可以直接通過pod的path指定路徑 (以前還可以使用 :local,不過現(xiàn)在已經(jīng)被:path取代了)..cocopods文件夾下的?注意:此處:path后面的路徑是指podspec文件所在目錄的路徑
執(zhí)行 pod install
也是可以的
不過這種方式添加的,cocoapods會(huì)放在 Development Pods文件夾下
下面這種方式也是可以的 ,并不需要將podspec加入到私有倉庫
#source?'https://github.com/yohunl/yohunlSpecs.git'
#source?'https://github.com/CocoaPods/Specs.git'
target?'TestPodFrameworkDemo'?do
#pod?'YohunlUtilsPod'?,?:path?=>?'/Users/yohunl/YohunlUtilsPod'
pod?'YohunlUtilsPod',:git?=>?'https://github.com/yohunl/YohunlUtilsPod.git'
end
target?'TestPodFrameworkDemoTests'?do
end
還有以下的方式
#pod?'YohunlUtilsPod'?,?:path?=>?'/Users/yohunl/YohunlUtilsPod'? #可以
#pod?'YohunlUtilsPod',:git?=>?'https://github.com/yohunl/YohunlUtilsPod.git'? #可以
#pod?'YohunlUtilsPod',:podspec?=>?'/Users/yohunl/YohunlUtilsPod/YohunlUtilsPod.podspec'? #指定podspec文件,可以
#pod?'YohunlUtilsPod',:podspec?=>?'https://github.com/yohunl/YohunlUtilsPod/blob/master/YohunlUtilsPod.podspec'? #經(jīng)過測試,這種方式不行
#pod?'YohunlUtilsPod',:podspec?=&
gt;?'https://github.com/yohunl/YohunlUtilsPod.git/YohunlUtilsPod
/YohunlUtilsPod.podspec'?#測試不行,提示找不到podspec文件
如果你能夠確定你的podspec文件是正確可用的話,完全可以直接向https://github.com/yohunl/yohunlSpecs添加podspec文件(當(dāng)然要符合格式要求哦)
5.打包framework的第三方插件命令
cocoapods的插件cocoapods-packager來完成類庫的打包,安裝命令sudo?gem?install?cocoapods-packager ?它的好處是,需要特別強(qiáng)調(diào)的是到踏,該插件通過對引用的三方庫進(jìn)行重命名很好的解決了類庫命名沖突的問題
參考文檔
http://www.cnblogs.com/brycezhang/p/4117180.html使用CocoaPods開發(fā)并打包靜態(tài)庫
http://www.iwangke.me/2013/04/18/advanced-cocoapods/#jtss-tsina
http://www.iwangke.me/2013/04/18/advanced-cocoapods/
http://eric-gao.iteye.com/blog/2128283提交framework到cocoapods官方去
http://www.cocoachina.com/ios/20150508/11785.html建立私有庫
http://blog.sigmapoint.pl/automatic-build-of-static-library-for-ios-for-many-architectures/
時(shí)間?2014-11-12 00:00:00iloss
原文http://www.iloss.me/post/kai-fa/2014-11-12-creat-pod
之前有寫過一次自己制作pods提交到cocoapods但是2014年5月20日Cocoapods不在接受向CocoaPods/Specs的pull request,改為trunk服務(wù)。
以前我們用的podspec為ruby格式尚猿,而trunk帶來了更方便的json格式窝稿,以后可以用json來配置pod。 之前我們發(fā)布的pod也會(huì)轉(zhuǎn)換未json文件
準(zhǔn)備
首先更新了用trunk之后凿掂,CocoaPods 需要0.33版本以上的伴榔,用pod --version查看,如果版本低庄萎,需要更新踪少,之前有介紹更新方法。
下一步注冊trunk
pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air'
你注冊的時(shí)候需要替換郵箱和名字糠涛,加上--verbose可以看到詳細(xì)信息援奢。
然后順利的話你會(huì)收到一份郵件,需要點(diǎn)擊驗(yàn)證忍捡。
pod trunk me //查看自己的注冊信息
當(dāng)然集漾,如果你的pod是由多人維護(hù)的,你也可以添加其他維護(hù)者
pod trunk add-owner ARAnalytics kyle@cocoapods.org
創(chuàng)建podspec
執(zhí)行命令:
pod spec create HZWebViewController
會(huì)在當(dāng)前目錄下生成HZWebViewController.podspec文件砸脊,然后我們編輯這個(gè)文件具篇。
podspec文件里面有很多注釋。我們看個(gè)例子
一眼看去就很明白了凌埂,不用一一解釋了驱显,當(dāng)然,這里的配置項(xiàng)遠(yuǎn)遠(yuǎn)多于這些瞳抓。
ok這里配置完成之后埃疫,需要把你的源碼push到github上,tag一個(gè)版本號(hào)并且發(fā)布一個(gè)release版本挨下,這樣podspec文件中的s.source的值才能是準(zhǔn)確的。
這些操作也不屬于本文的所研究的范疇脐湾。
提交
上面的工作完成之后臭笆,我們就可以開始trunk push了
pod trunk push命令會(huì)首先驗(yàn)證你本地的podspec文件(是否有錯(cuò)誤),之后會(huì)上傳spec文件到trunk,最后會(huì)將你上傳的podspec文件轉(zhuǎn)換為需要的json文件
第一步驗(yàn)證podspec文件也可以自己去做pod spec lint Peanut.podspec
成功部署之后愁铺,CocoaPods會(huì)在Twitter上@你
我們可以看看我們提交的名字為:HZWebViewController的pod
pod search HZWebViewController
我們也可以在本地的~/.cocoapods路徑下看到,轉(zhuǎn)換之后的json文件
補(bǔ)充 Claim your Pod
如果你之前提交過pod鹰霍,那么trunk之后你需要去(Claim your Pod)認(rèn)領(lǐng)
在這個(gè)頁面:https://trunk.cocoapods.org/claims/new
輸入你的信息,如下圖:
send之后就開始等待茵乱,官方提示是過了過渡期就你就可以提交新版本了
這樣就愉快的結(jié)束了