iOS创建本身cocoaPods库

因为公司的项目比较多,多个项目之间有不少公共的东西,各类姿式百度以后决定使用码云私有库+cocoaPods的方式来管理公共部分的代码(公司的代码是不能公开的,因此用的是码云)。html

本文讲的是从头开始的流程:ios

一、在码云上建立一个本身的私有仓库,本人是使用的sourceTree在本地进行的版本管理git

参考:使用码云建立属于你的免费私有git仓库ssh

二、在终端,cd到你的项目文件目录中,建立podspec文件:ui

pod spec create xxxxx

文件名最好与你的库名字一致,库名字最好不要与pods上其余库名字重复url

建立成功后,项目文件目录下会多一个xxxxx.podspec的文件,这个至关于pods仓库的配置文件,配置内容具体以下:spa

# Pod::Spec.new do |s|
# s.name             = "PodTestLibrary"    #名称
# s.version          = "0.1.0"             #版本号
# s.summary          = "Just Testing."     #简短介绍,下面是详细介绍
# s.description      = <<-DESC
# Testing Private Podspec.
# DESC
# s.homepage         = "https://git.oschina.net/wuhongxing/PrivateRepo.git"                           #主页,这里要填写能够访问到的地址,否则验证不经过
# s.screenshots     = "www.example.com/screenshots_1", "www.example.com/screenshots_2"           #截图
# s.license          = 'MIT'              #开源协议
# s.author           = { "wtlucky" => "wtlucky@foxmail.com" }                   #做者信息
# s.source           = { :git => "https://git.oschina.net/wuhongxing/PrivateRepo.git", :tag => "0.1.0" }      #项目地址,这里不支持ssh的地址,验证不经过,只支持HTTP和HTTPS,最好使用HTTPS
# s.social_media_url = 'https://twitter.com/<twitter_username>'                       #多媒体介绍地址

# s.platform     = :ios, '8.0'            #支持的平台及版本
# s.requires_arc = true                   #是否使用ARC,若是指定具体文件,则具体的问题使用ARC

# s.source_files = 'Pod/Classes/**/*.{h,m}'     #代码源文件地址,**/*表示Classes目录及其子目录下全部文件,若是有多个目录下则用逗号分开,若是须要在项目中分组显示,这里也要作相应的设置
# s.resource_bundles = {
# 'PodTestLibrary' => ['Pod/Assets/*.png']
# }                                       #资源文件地址
# s.public_header_files = 'Pod/Classes/**/*.h'   #公开头文件地址
# s.frameworks = 'UIKit'                  #所需的framework,多个用逗号隔开
# s.dependency 'AFNetworking', '~> 2.3'   #依赖关系,该项目所依赖的其余库,若是有多个须要填写多个s.dependency
# end

而后将代码提交。.net

这个配置文件的配置内容很重要,配置的对错,会决定你的代码可否成功的推送到pods翻译

三、为你的code打上tag版本号code

git tag '0.0.1'
git push --tags

版本号本身肯定,与podspec配置文件内的版本号相匹配

四、注册trunk

pod trunk register xxxx@xxxx.com 'xxxx' --description='xxxx' --verbose
xxxx@xxxx.com一个可用的邮箱,注册成功以后会收到一份邮件须要点开
'xxxx'用户名
--description='xxxx'描述
--verbose若是出现错误,显示更多信息

查看本身的信息:
pod trunk me

添加其余维护者

pod trunk add-owner xxxxxxx xxxxx@xxxx.com
xxxxxxx 库的名字
xxxxx@xxxx.com 其余人的trunk邮箱

 

五、提交到CocoaPods trunk

pod trunk push --allow-warnings

该操做会对本地的代码及podspec配置文件进行检查,容许警告WARN但不容许报错ERROR

也能够本身手动检查

pod lib lint --allow-warnings

 若是是在项目文件目录下pod lib lint后面不须要跟xxxxx.podspec文件名,--allow-warnings是容许警告

六、上面的步骤成功以后

pod search 你的库名

就能搜索到了

六、接下来是更新代码,而后推送到pods的流程。

个人代码库里只是一些零散的文件,因为推送到pods的代码不能报错,因此我这里是新建了一个空项目,而后把公共依赖的文件放到一个文件夹内Classes(名字随意),拖到项目中,在提交的时候先编译一下,确保没有报错。

这样作的同时podspec里

s.source_files的配置也要改成指定的文件目录:项目名/Classes/**/*.{h,m}

本地文件改动后,提交到git

七、而后重复步骤3,为你的代码打上tag,并推送tag(tag不能重复)

八、而后步骤5推送到trunk,这一步检查的时候很容易失败,报出的错误能够翻译过来针对性的找一下问题,基本意思都很明确

之后在每一个项目中之须要在Podfile文件中增长本身的库,而后

pod install

每次有更新 pod update 你的库名

便可

能够参考:发布本身的pods到CocoaPods trunk

     http://www.javashuo.com/article/p-wefwgsii-et.html

 

 在引用Masonry时,须要在podspec配置文件中增长

s.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }

参考:[CocoaPod]基于私有仓库的pod建立问题

相关文章
相关标签/搜索