iOS建立自己cocoaPods库

由于公司的项目比较多,多个项目之间有很多公共的东西,各种姿势百度之后决定使用码云私有库+cocoaPods的方式来管理公共部分的代码(公司的代码是不能公开的,所以用的是码云)。

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

1、在码云上创建一个自己的私有仓库,本人是使用的sourceTree在本地进行的版本管理

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

2、在终端,cd到你的项目文件目录中,创建podspec文件:

pod spec create xxxxx

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

创建成功后,项目文件目录下会多一个xxxxx.podspec的文件,这个相当于pods仓库的配置文件,配置内容具体如下:

# 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

然后将代码提交。

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

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

git tag '0.0.1'
git push --tags

版本号自己确定,与podspec配置文件内的版本号相匹配

4、注册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邮箱

 

5、提交到CocoaPods trunk

pod trunk push --allow-warnings

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

也可以自己手动检查

pod lib lint --allow-warnings

 如果是在项目文件目录下pod lib lint后面不需要跟xxxxx.podspec文件名,--allow-warnings是允许警告

6、上面的步骤成功之后

pod search 你的库名

就能搜索到了

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

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

这样做的同时podspec里

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

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

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

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

以后在每个项目中之需要在Podfile文件中增加自己的库,然后

pod install

每次有更新 pod update 你的库名

即可

可以参考:发布自己的pods到CocoaPods trunk

     https://www.cnblogs.com/richard-youth/p/4704413.html

 

 在引用Masonry时,需要在podspec配置文件中增加

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

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

 

 


posted @ 2017-11-23 10:59  笔锋至此  阅读(1830)  评论(0编辑  收藏  举报