起名动私有Cocoapods仓库 中高级用法

自爱不释手露易丝,大胆自信,有脑有担当,不论是打爆无耻男的皮带还是最后的极速飙车都帅爆了。有哪个休希罕露易丝呢?我想才出那些最的男权主义者吧,当露易丝拿枪指着即他们,告诉他们当一个老小哭成那样的时节,她们并无觉得开心的时刻,这些人口会暴怒,会爆粗口。所以,当电影最后告诉自己露易丝也是蛮的遇害者时,我清楚了干吗当初露易丝会那么愤慨,同时心里无法承受之真相,我无能为力经受自己这样爱的贤内助吃人强奸。

NCKFoundation pods制作完!

谢你的耐性看,如果您当就首文章产生帮助,请你大台贵指点一下好就足以了。

眼看让自己回忆了马上几年国内的一个热议话题,夏天当公共场合女性穿在了少最后受到侵犯是休是女的擦?有些人谈之凿凿说本来了,女性应该别得体云云。但是,什么叫做得体呢?我望了一致布置图纸,两只将自己吸食得紧的伊斯兰女孩子唯独无意间裸露出了脚踝,结果个别单丈夫还让她们抓住了过去。只要一个老公从了淫乱的心,那么不论是这女怎么穿正,都可以称为不得体。如果女孩子受到侵蚀是坐好的来头。假如说是没有戒心,那么什么叫无戒心呢?今天之定义还是依照随便便和一个女婿去停车场,随后就是错过酒店这种地方便没有戒心,再跟着也?晚上飞往便从未戒心,在马路上动就是是没有戒心吗?所有的小妞还无生户,一个女童来户了,多少单身男人看到你就是比如饿了几只月之狼看见肉,太诱惑了,所以犯了若莫算是男人的摩,我一样想到自己脑海中一闪而过的训斥thelma的遐思最后见面演变成为这样,不禁一抖,吓了一跳。

3.上传NCKFoundation

这就是说我们不怕以工程上传的github上,并创造1.0之tag。
上传方式自行解决,网上发众多可视化工具,比如sourcetree。

上污染了晚再度检查一下:

pod spec lint --allow-warnings

这次应无问题了咔嚓?

吓,还没竣工,接下我们将podspec文件上传的我们温馨的spec仓库里,而未是cocoapods的堆栈。

pod repo push NCKSpecs NCKFoundation.podspec --allow-warnings

cocoapods会把podspec文件及流传NCKSpecs仓库中。
吓现在去你的github看看spec仓库。

然而,又生哪个家里就该为强暴呢?我记得在影视的面前半段,我之脑际中直接有一个题目:“What’s
wrong with
Thelma?”乖乖,如果未是公不用戒心的和爱人喝酒,还独立和人家去停车场,你吧无见面产生让强暴的危急;如果您免是把几千美刀放在床头柜上,然后去宾馆把钱与一个起前科的爱人留于并,你们呢未会见最后吃压上绝路抢商店。但是,我问话了祥和一个题目,难道女性于强暴和为偷钱,是阴的摩擦吧?
当一个先生说自己带来您去外边醒酒,就应有只是带你醒酒,不应该是别的。如果是男的刁钻,难道应该怪这个女生为什么跟外出来也?

编写 NCKUIKit pods

新建NCKUIKit pods 步骤同NCKFoundation一样 进入指定目录
直接以极限里输入

pod lib create NCKUIKit

到Example目录下pod install
开辟工程编辑podspec文件

Pod::Spec.new do |spec|
  spec.name             = 'NCKUIKit'
  spec.version          = '1.0'
  spec.summary          = 'A short description of NCKUIKit.'

  spec.description      = <<-DESC
                       Add long description of the pod here.
                       DESC

  spec.homepage         = 'https://github.com/NicolasKim/NCKUIKit'
  spec.license          = { :type => 'MIT', :file => 'LICENSE' }
  spec.author           = { 'NicolasKim' => 'jinqiucheng1006@live.cn' }
  spec.source           = { :git => 'https://github.com/NicolasKim/NCKUIKit.git', :tag => spec.version.to_s }
  spec.ios.deployment_target = '8.0'
  spec.source_files = 'NCKUIKit/Classes/*.{h,m}'
  spec.dependency 'SDWebImage', '~> 3.8.2'
end

NCKFoundation pods制作完!


电影被自最为赞的底细,就是当警察和thelma的老公于看thelma抢劫商店的督察时,其中一个警长吃的汉堡从旁边露出来的等同片叶片。这片菜叶软塌塌的,从面包和肉饼的缝中耷拉下,像是一个传死的人吐生底舌头。在一个阴的放映室,一个秃顶肥肚的中年男人吃在一个毫不美观的汉堡,而任何一样正值一个内戴在黑超举在枪,十分毫不动摇的抢夺商店,美丑立现。这同一房屋的女婿像都不敢相信在和谐制订的社会规范下服从给自己的大脑与阴部的贤内助会做出抢劫商店这样的举动。

  1. 以民用spec仓库
  2. 开创私有pods
  3. 村办pods依赖第三方静态库(.a , .framework)
  4. 民用pods依赖第三着pods
  5. 私家pods依赖另外的民用pods

说到底的画面极致美,让自己还还如相信他们有超能力,可以驾着车快速天际,最后逃了了警力的魔手,现在正墨西哥晒太阳。是的,无论谁糟糕的时,都见面发出像那个好警长一样的食指,知道出的这一体当中无完全是女的擦,但是这么的人头究竟是少数。正而露易丝在同一开所言,只要给吸引,他们只有死路一条。当他俩将车子发动,飞扬的尘土遮挡住了一个产生灵魂的男性为他们跑去的人影,在她们前面的只有悬崖,没有退路。这是相同集起平开始便不曾退路的逃逸,虽然短促,但是并未丁好矢口否认这精彩至最。他们的此星期是这般之狂,打爆油车,抢劫商店,极速飞车,游离在法网之外的畅快却是少数独妻子了解好来天无多之情景下之任意妄为,就类似明白好时未多之绝症患者放弃治疗环游世界一样。

2.检查

每当上传到git仓库之前,做一下反省:
在NCKViewcontroller中

#import "NCKRootObject.h"

莫报错说明source_files指定的目没有问题。

通下去用pod的通令检查一下。

后下降到podspec文件是的目下,输入一下限令:

pod lib lint

假定因来无关紧要的警示而休通过检查,则输入一下指令:

pod lib lint --allow-warnings

反省时pod会忽略警告。如果起转手提示,你知,已经成功一充分半了。

NCKFoundation passed validation.

通下远程检查pods,这次cocoapods会根据podspec文件里之source
检查对应之库里发出没来指定tag的库房。显然我们尚从未将NCKFoundation
上盛传github的NCKFoundation仓库里,可自然会报错,执行试一下。

pod spec lint

-> NCKFoundation (1.0)
    - WARN  | description: The description is shorter than the summary.
    - ERROR | [iOS] unknown: Encountered an unknown error ([!] /Applications/Xcode.app/Contents/Developer/usr/bin/git clone https://github.com/NicolasKim/NCKFoundation.git /var/folders/6x/8pyfnj_n4573cq4206yjz41c0000gn/T/d20161017-14130-148x77b --template= --single-branch --depth 1 --branch 1.0

Cloning into '/var/folders/6x/8pyfnj_n4573cq4206yjz41c0000gn/T/d20161017-14130-148x77b'...
fatal: Remote branch 1.0 not found in upstream origin
) during validation.

Analyzed 1 podspec.

[!] The spec did not pass validation, due to 1 error and 1 warning.

冲错误得发,对应之堆栈里没1.0的分。

相比之下 末路狂花
这个名字,我再欣赏塞尔玛同露易丝这个直译的,更加心平气和,没有那么多花费里胡哨的物,告诉我这影片是描述两单丫头的故事。我竟都想跟即时半独女孩子约着喝。而且,不得不叹服编剧的起名能力,塞尔玛,露易丝,音韵上居一块儿是多的抖。

4.用到个人pods

新建一个工,TestNCKFoundationPod
顶点上该目录,新建Podfile。
当第一执在如下代码:

source 'https://github.com/NicolasKim/NCKSpecs.git'

意就是是当找还是下载pods的时候默认从NCKSpecs.git中获信息。
也就是说,我们于Cocoapods的spec仓库移到我们自有的spec仓库。之后就是健康的pods使用办法。

target 'TestNCKFoundationPod' do
  pod 'NCKFoundation', '~> 1.0'
end

pod install

拟引入NCKRootObject.h并运行测试工程。

自我好他们的存到淋漓,可是还要恨极了电影里把他们逼到绝路的社会风气。



  • NCKUIKit(私有pod)
    • SDWebImage(依赖的老三在pod)
    • BaiduMap.framework(手动引入的老三着framework)
    • NCKFoundation(依赖之个人pod)
      • AFNetworking(依赖的老三正在pod)
      • libWechat.a(手动引入的老三在framework)

1. 创建NCKFoundation pods以及DEMO工程

切换至得之目下实行一下命令:

pod lib create NCKFoundation

上述命令会在你指定的目录下,根据cocoapods的pods模板生成一个pods工程,包含pods以及demo工程,先不用心急打开工程。文件目录如下:

于顶峰上到Example目录下

pod install

这时候会相Example目录下会变一个workspace文件

双击打开工程,工程目录如下:

拿replaceme删除掉,Classes下新建一个类NCKRootObject
编辑NCKFoundation.podspec文件,里面来同样堆放物,先周去除掉,并贴如下代码:

Pod::Spec.new do |spec|
  spec.name             = 'NCKFoundation'
  spec.version          = '1.0'
  spec.summary          = 'Guide for private pods :'
  spec.description      = <<-DESC
                       Guide for private pods
                       DESC
  spec.homepage         = 'https://github.com/NicolasKim/'
  spec.license          = { :type => 'MIT', :file => 'LICENSE' }
  spec.author           = { 'NicolasKim' => 'jinqiucheng1006@live.cn' }
  spec.source           = { :git => 'https://github.com/NicolasKim/NCKFoundation.git', :tag => spec.version.to_s }
  spec.ios.deployment_target = '8.0'
  spec.source_files = 'NCKFoundation/Classes/*.{h,m}'

end

及podfile的目录下执行命令

pod install

外会见基于spec文件,将NCKRootObject跟demo工程进展链接

优先做一下参数说明:

spec可以当作是一个目标实例,有好多属性如下:

name:顾名思义就是是pod的名,当我们运用pod search xxxx时,xxx就是name。

version : pod 的本子 也便是我们重podfile里指定的要命本。

summary:概要说明

description:pod的描述。

source:远程仓库的地点和tag版本

ios.deployment_target:ios部署版本
osx.deployment_target:osx部署版本

source_files:
需要编译文件的文件目录,注意大凡文件目录而未是工程目录

2.创建NCKFoundation仓库

在github创建NCKFoundation仓库

关联Baidumap.framework

失去百度地图官网下载framework
目如下

将全部文件夹拖到Classes目录下

然后编辑podspec如下

Pod::Spec.new do |spec|
  spec.name             = 'NCKUIKit'
  spec.version          = '1.0'
  spec.summary          = 'A short description of NCKUIKit.'

  spec.description      = <<-DESC
                       Add long description of the pod here.
                       DESC

  spec.homepage         = 'https://github.com/NicolasKim/NCKUIKit'
  spec.license          = { :type => 'MIT', :file => 'LICENSE' }
  spec.author           = { 'NicolasKim' => 'jinqiucheng1006@live.cn' }
  spec.source           = { :git => 'https://github.com/NicolasKim/NCKUIKit.git', :tag => spec.version.to_s }
  spec.ios.deployment_target = '8.0'
  spec.source_files = 'NCKUIKit/Classes/*.{h,m,mm}'
  spec.dependency 'SDWebImage', '~> 3.8.2'
  spec.vendored_frameworks = ['NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Base.framework',
                              'NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Location.framework',
                              'NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Map.framework',
                              'NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Search.framework',
                              'NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Utils.framework']
  spec.resource_bundles = {'Resources' => 'NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Map.framework/Resources/mapapi.bundle'}
  spec.frameworks = 'CoreLocation','QuartzCore','OpenGLES','SystemConfiguration','CoreGraphics','Security','CoreTelephony'
  spec.libraries = 'sqlite3.0', 'stdc++.6.0.9'
#spec.user_target_xcconfig =   {'OTHER_LDFLAGS' => ['-lObjC','-all_load']}

end

参数说明:

vendored_frameworks: 第三方framework

pod_target_xcconfig: build setting的配置

编写 NCKFoundation pods

需要如下:

1.创建/使用都发NCKSpecs仓库

如果无于github上新建一个库,
假若生欠库则直以极端输入一下命即可。

pod repo add NCKSpecs https://github.com/NicolasKim/NCKSpecs.git

如上命令会将github上的NCKSpecs仓库克隆到当地。执行一下限令查看本地的pods仓库:

pod repo

创建3个仓库

达成同首稿子《应用私有Cocoapods仓库》讲解了创造私有pod的开头教程,接下我们提升一下难度。

借助关系如下:

6.制作subspec

先行说一下subspec是啊
在顶峰搜索一下sdwebimage,结果如下

也就是说我们重运sdwebimage时毫无下载全部的零部件,喜欢用谁就下哪个,由此得出subspec可以好成一个子模块儿,当然就得我们再次编码的历程中减掉模块儿之间的依,使各个模块儿可以独自运转。

哼!接下去我们摸索着开一个子模块儿
以工程目录下 新建文件夹NCKSub(并转移对应之文件目录)
新建一个类NCKChild,并当podspec文件里补充加如下代码:

spec.subspec 'NCKSub' do |cs|
       cs.source_files = 'NCKFoundation/Classes/NCKSub/*.{h,m}'
  end

参数说明:

NCKSub : subspec的讳 可以无限制起名

cs : 为变量名 与spec类似 拥有spec用之兼具属于性 可以随意起名

执行

pod install

观测一下工目录,并运行。还顺利吗?

连接下我们准备升级pods的版本

将podspec的version 改为2.0

下一场实施

pod lib lint --allow-warnings

用NCKFoudation push至远程仓库并新建2.0底tag
将podspec push至私有的spec仓库被

pod repo push NCKSpecs NCKFoundation.podspec --allow-warnings

搜寻一下

pod search NCKFoundation

结果如下:

我们错过TestNCKFoundationPod 这个工程被修改一下Podfile为

source 'https://github.com/NicolasKim/NCKSpecs.git'
source 'https://github.com/CocoaPods/Specs.git'
target 'TestNCKFoundationPod' do
  pod 'NCKFoundation', '~> 2.0'
end

为在私有的pod中因了另外的pod(afnetworking)afnetworking的spec文件是以cocoapods的堆栈里
所以要补加一个cocoapods的spec仓库地址。

pod install

看一下工目录:

为有利于读者的调剂,此次的堆栈都是依据github的。

5. 添加afnetworking 和 微信的负

预先从微信起名开放平台下载微信sdk
在NCKFoundation/NCKFoundation/Classes
目录下创造ThirdParty文件夹,并将.a和.h文件拖到ThirdParty文件夹下。(注意不要拖到工程目录下,而是文件目录)
每当podspec文件里窜source_file 为

spec.source_files = 'NCKFoundation/Classes/*.{h,m}', 'NCKFoundation/Classes/ThirdParty/*.{h}'

填补加.a静态库的依,.a因之网framework以及library

spec.vendored_libraries  = 'NCKFoundation/Classes/ThirdParty/*.{a}'
spec.frameworks = 'SystemConfiguration','CoreGraphics','CoreTelephony','Security','CoreLocation','JavaScriptCore'
spec.libraries  = 'iconv','sqlite3','stdc++','z'

参数说明

vendored_libraries: 第三方.a文件

frameworks: 该pod依赖之系framework

libraries: 该pod依赖的体系library

添加AFNetworking的依赖

spec.dependency   'AFNetworking', '~> 3.1.0'

参数说明

dependency : 该pod依赖的pod

pod install

尔后看一下工目录

在Example里的NCKViewController里#import “WXApi.h”
运作工程看看报不报错。

3.创建NCKUIKit仓库

在github创建NCKUIKit仓库


Github上的库房列表如下:

  • NCKSpecs
  • NCKUIKit
  • NCKFoundation

干私有pod NCKFoundation

接轨编辑podspec文件,如下:

Pod::Spec.new do |spec|
  spec.name             = 'NCKUIKit'
  spec.version          = '1.0'
  spec.summary          = 'A short description of NCKUIKit.'

  spec.description      = <<-DESC
                       Add long description of the pod here.
                       DESC

  spec.homepage         = 'https://github.com/NicolasKim/NCKUIKit'
  spec.license          = { :type => 'MIT', :file => 'LICENSE' }
  spec.author           = { 'NicolasKim' => 'jinqiucheng1006@live.cn' }
  spec.source           = { :git => 'https://github.com/NicolasKim/NCKUIKit.git', :tag => spec.version.to_s }
  spec.ios.deployment_target = '8.0'
  spec.source_files = 'NCKUIKit/Classes/*.{h,m,mm}'
  spec.dependency 'SDWebImage', '~> 3.8.2'
  spec.vendored_frameworks = ['NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Base.framework',
                              'NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Location.framework',
                              'NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Map.framework',
                              'NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Search.framework',
                              'NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Utils.framework']
  spec.resource_bundles = {'Resources' => 'NCKUIKit/Classes/BaiduMap_IOSSDK_v3.0.0_Lib/BaiduMapAPI_Map.framework/Resources/mapapi.bundle'}
  spec.frameworks = 'CoreLocation','QuartzCore','OpenGLES','SystemConfiguration','CoreGraphics','Security','CoreTelephony'
  spec.libraries = 'sqlite3.0', 'stdc++.6.0.9'
#spec.user_target_xcconfig =   {'OTHER_LDFLAGS' => ['-lObjC','-all_load']}
  spec.dependency 'NCKFoundation'
end

podspec文件编制了,先甭在急 pod install
如今pod install 肯定找不至 NCKFoundation 所以我们需要在里Podfile一下
source
编辑Podfile如下:

use_frameworks!

source 'https://github.com/NicolasKim/NCKSpecs.git'
source 'https://github.com/CocoaPods/Specs.git'


target 'NCKUIKit_Example' do
  pod 'NCKUIKit', :path => '../'

  target 'NCKUIKit_Tests' do
    inherit! :search_paths

    pod 'FBSnapshotTestCase'
  end
end

pod install

即是碰头于个体仓库https://github.com/NicolasKim/NCKSpecs.git
下载NCKFoundation 并配备到工程。

把NCKUIKit push到个体仓库里。(请自行解决)

接通下去检查一下podspec文件

注意 :
NCKUIKit的检查与NCKFoundation的检查稍微有零星区别,因为NCKUIKit
依赖了NCKFoundation,同时NCKFoundation 是私有仓库里的pod
,所以我们检查是索要指定source。一个呢cocoapods的source
另一个吧患得患失出spec仓库的source

pod lib lint --sources=https://github.com/NicolasKim/NCKSpecs.git,https://github.com/CocoaPods/Specs.git --allow-warnings

自我批评通过后直拿spec文件push到个人spec仓库里。

留意:push时默认会检查 spec文件 所以同样用提供source

pod repo push NCKSpecs NCKUIKit.podspec --sources=https://github.com/NicolasKim/NCKSpecs.git,https://github.com/CocoaPods/Specs.git --allow-warnings

以 TestNCKFoundationPod 的podfile改成为如下:

target 'TestNCKFoundationPod' do
  pod 'NCKUIKit'
end

pod install

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图