思路:
1.下載一個模板項目
2.把這個模板項目上傳到git上
3.通過pod來獲取這個git上的項目
操作:
一.創(chuàng)建模板
1.有自己的git賬號和倉庫
2.已經安裝好pod
3.確定好組件的名稱(避免名字過于大眾)
4.打開終端,cd到桌面少欺,輸入下面的命令去創(chuàng)建模板
pod lib create 組件名字
5.會問你幾個問題,一些問題和答案如下
would you like to include a demo application with your library?
yes
Which testing frameworks will you use?
none
would you like to do view base testing?
no
what is your class prefix?
前綴名稱
其他問題看自己的需求
整個過程馋贤,終端會顯示這些
這里我的組件名字叫 TeSt
前綴是 TeSt
這時候會自動打開一個工程
8.打開工程所在的文件夾(標紅的是主要會用到的文件/文件夾)
二.把這個模板項目上傳到git上
由于本人是git苦手赞别,不大會用命令行,所以用的是界面化操作的sourceTree配乓。
1.在git上創(chuàng)建一個工程仿滔,工程名同組件名(我是直接在網頁上操作的惠毁,命令行真的是弄不來),至于是是不是公有隨意崎页。
2.clone到本地(這時候鞠绰,這個clone到本地的項目應該就是一個空文件夾)
3.把之前模板里面的東西都放到到這個clone的工程里面(就是紅框里面的東西),然后那個模板工程現(xiàn)在應該就是一個空文件夾了飒焦,可以刪掉了
4.把整個項目同步到git遠程服務器上蜈膨,現(xiàn)在服務器上這個工程里面的內容就是當初咱們下載的模板內容了。
5.更改podspec
在項目中能找到一個 podspec后綴的文件牺荠,用xcode打開它翁巍。然后直接把下面的粘貼上去
Pod::Spec.new do |s|
#插件名稱
[s.name](http://s.name) = ‘*******需要更改********'
#插件版本號,也就是git中的tag
s.version = '0.1.0'
#插件簡述
s.summary = '*******建議更改********'
#插件具體描述
s.description = <<-DESC
*******建議更改********
DESC
#插件首頁
s.homepage = '*******需要更改********'
#插件截屏地址
# s.screenshots = '[www.example.com/screenshots_1](http://www.example.com/screenshots_1)', '[www.example.com/screenshots_2](http://www.example.com/screenshots_2)'
#插件證書休雌,一般不用更改
s.license = { :type => 'MIT', :file => 'LICENSE' }
#插件作者名/郵箱地址
s.author = { 'mj230816' => ['songqian@readchina.com.cn]> (mailto:'songqian@readchina.com.cn)' }
#插件資源地址
s.source = { :git => '*******需要更改********', :tag => s.version.to_s }
#插件iOS開發(fā)版本
s.ios.deployment_target = '8.0'
#插件文件地址
s.source_files = 'TeSt/Classes/**/*'
#插件資源地址
# s.resource_bundles = {
# 'TeSt' => ['TeSt/Assets/*.png']
# }
#插件公共頭文件地址
# s.public_header_files = 'Pod/Classes/**/*.h'
#插件依賴的framework
# s.frameworks = 'UIKit', 'MapKit'
#插件以來的其他三方庫
# s.dependency 'AFNetworking', '~> 2.3'
end
這里需要修改的有以下幾個:
1.s.homepage 更改為
s.homepage = '插件本身的git地址(http/https形式的)'
2.s.name 就是插件/工程名字
3.s.source 更改為:
s.source = { :git => ‘插件本身的git地址(http/https形式的)', :tag => s.version.to_s }
4.如果依賴了一些蘋果的framework灶壶,則把下面的放開(把#去掉),并且添加依賴的framework名稱
s.frameworks = 'UIKit', ‘MapKit'
5.如果依賴了其他的三方庫則同三處理
s.dependency 'AFNetworking', '~> 2.3’
剩下的我已經表明注釋了杈曲,大家可以按需更改驰凛。
6.更改完之后在再推送到git服務器上一次。
7.添加tags
這時候如果你用網頁進入git倉庫中的項目鱼蝉,你會發(fā)現(xiàn)界面不一樣了洒嗤。
以前是這樣
現(xiàn)在是這樣
然后把這個tag更改為s.version相同的數(shù)值
7.測試
打開命令行
cd到插件工程目錄下
輸入pod spec lint
可能會出現(xiàn)如下錯誤:
1)
ERROR | [iOS] unknown: Encountered an unknown error
說明: tags 和 s.version 數(shù)值不同
解決方法:修改遠程倉庫的 tags
2)
WARN | summary: The summary is not meaningful.
說明:s.summary 應該修改一些內容箫荡,讓其描述更加的有意義
解決方法:打開podspec魁亦,改一個更加有意義的描述
更改完了之后,別忘了和遠程倉庫同步羔挡。
如果出現(xiàn)如截圖所示洁奈,就表示基本成功了。
三.通過pod來獲取這個git上的項目
這里我只說明咱們的podfile要怎么寫绞灼。
pod '插件名稱', :git => ‘和s.homepage的數(shù)值相同’
如果到這里成功了那么就差最后一步利术。(基本應該沒啥問題)
四.把組件的實現(xiàn)文件放入
咱們只要
1.把咱們想要放的東西全都放到之前克隆的項目的Classes文件夾,記住把ReplaceMe.m刪除哦
2.然后上傳到服務器
3.pod update
就OK了
獲取插件所在bundle
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
獲取插件中的圖片
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSString *imagePath = [bundle pathForResource:@"btn_jinrisaishi@2x"
ofType:@"png"
inDirectory:@"SQPHelper.bundle"];
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];