BEGAN
之前一直用大神們的寫(xiě)好的輪子,哇塞买喧,直接 cocoapod 就引進(jìn)項(xiàng)目里面了捻悯,覺(jué)得好厲害,很羨慕淤毛,想著自己什么時(shí)候也能發(fā)一個(gè)輪子讓大家也用用今缚,不說(shuō)做什么了,都不知道怎么上傳項(xiàng)目至 cocoapods 里面低淡。
自己查找了很多資料姓言,終于傳上了第一個(gè)輪子,廢話不多說(shuō)查牌,分以下幾步事期,上操作~
1.本地代碼
2.上傳到 Github托管
3.添加 CocoaPods 依賴(lài)庫(kù)
前兩步的操作可以參見(jiàn)我上邊寫(xiě)的,鏈接以下:上傳到 Github托管纸颜。
我們直接從第三步開(kāi)始:
1兽泣、我們?cè)谏蟼鞔a到 github 成功過(guò)后要給代碼打 tag
// 例如
$ git tag '1.0.0'
$ git push --tags
2、注冊(cè)trunk:(如果我們之前沒(méi)有注冊(cè)的話胁孙,需要注冊(cè)一個(gè))
// 查看自己之前有沒(méi)有注冊(cè)過(guò) trunk
$ pod trunk me
如果已經(jīng)注冊(cè)過(guò)會(huì)是以下樣式唠倦。
未注冊(cè)的用戶(hù)需要執(zhí)行以下幾步:
$sudo gem install cocoapods
// 賬號(hào)郵箱是自己的 Github 賬號(hào)和用戶(hù)名
$pod trunk register xy@dtb@163.com 'VansXY' --verbose
// 查看自己是否注冊(cè)成功
$pod trunk me
3、配置自己的podspec文件
(1)打開(kāi)項(xiàng)目文件夾
$cd Desktop/XYCategoryDemo/
(2)創(chuàng)建podspec文件
$ pod spec create XYCategoryDemo
這時(shí)項(xiàng)目中會(huì)生成一個(gè)XYCategoryDemo.podspec文件 用XCode 打開(kāi)(或者下載一個(gè) sublime Text
(3)根據(jù)自己的信息 涮较,進(jìn)行編輯XYCategoryDemo.podspec文件
// 提供的模板
Pod::Spec.new do |s|
s.name = "XYCategoryDemo"
s.version = "0.0.2"
s.summary = "A short description of XYCategoryDemo."
s.description = "XYCategoryDemo is very easy"
s.homepage = "https://github.com/VansXY/XYCategoryDemo.git"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "肖揚(yáng)" => "xy_dtb@163.com" }
s.source = { :git => "https://github.com/VansXY/XYCategoryDemo.git", :tag => "#{s.version}" }
s.platform = :ios, "8.0"
s.source_files = "XYCategoryDemo/XYCategory/*"
#s.exclude_files = "Classes/Exclude"
s.framework = "UIKit"
s.requires_arc = true
參數(shù)的注釋?zhuān)?/h6>
name: 導(dǎo)入pod后的目錄名
version: 當(dāng)前版本號(hào)
deployment_target: 配置的target
prefix_header_file: 預(yù)編譯頭文件路徑稠鼻,將該文件的內(nèi)容插入到Pod的pch文件內(nèi)
source: 來(lái)源的具體路徑,是http鏈接還是本地路徑 requires_arc: 是否需要arc
source_files: 指定該目錄下包含哪些文件 其他可選參數(shù)還包括: dependency: 指定依賴(lài)狂票,如果依賴(lài)的庫(kù)不存在或者依賴(lài)庫(kù)的版本不符合要求將會(huì)報(bào)錯(cuò)
libraries: 指定導(dǎo)入的庫(kù)候齿,比如sqlite3
frameworks: 指定導(dǎo)入的framework
weak_frameworks: 弱鏈接,比如說(shuō)一個(gè)項(xiàng)目同時(shí)兼容iOS6和iOS7,但某一個(gè)framework只在iOS7上有慌盯,這時(shí)候如果用強(qiáng)鏈接周霉,那么在iOS7上運(yùn)行就會(huì)crash,使用weak_frameworks可以避免這種情況亚皂。
通配符說(shuō)明:
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文件
4俱箱、調(diào)試下podspec配置文件是否有錯(cuò)誤
$ pod lib lint --allow-warnings // 驗(yàn)證是否有合格
出現(xiàn)錯(cuò)誤,可以根據(jù)錯(cuò)誤修改下~沒(méi)有一次成功的灭必。
5狞谱、提交 podspec 到 cocoapod 庫(kù)
# pod repo push [repo倉(cāng)名] [podspec文件名]
$ pod repo push xxx xxx.podspec
完成之后這個(gè)私有庫(kù)就添加到我們的私有Spec Repo中,可以進(jìn)入到~/.cocoapods/repos目錄下查看
6禁漓、最后一步 trunk提交就可以了
# 提交podspec文件到trunkpod trunk push NNATree.podspec
pod trunk push --allow-warnings
成功了跟衅!
pod search xxx 可能需要等一會(huì)才能搜到 或者運(yùn)行 pod setup試試(CocoaPod 官方會(huì)審核,審核通過(guò)后會(huì)搜索到璃饱,不要急~)
END