由于年前项目业务繁忙和过年时的忘我嗨状态,博客许久未更新,新的一年小目标之一是整理一个自己的快速开发app的类开源库,首先第一步就是本文所写,如何制作一个依赖库。
git账号的申请和pod的安装不赘述了,应该都会有,并且比较简单。
##制作依赖库
###1.工程准备
在自己的github主页新建一个repository工程,名字跟自己待制作的依赖库名字不要一样(注意不要一样,不然后面会有路径问题),新建完成后git clone 项目地址
到本地
###2.依赖库相关配置及文件 到本地项目与.xcodeproj文件在同一级子目录下加入两个文件和一个文件夹:
1.LICENSE授权文件,一般为MIT(其他类推),可以上官网copy一份,也可以到其他地方copy一份后更改时间和开发者即可
2.XXXX文件夹,最好是英文名,这个文件夹下放置你期望别人pod你的依赖库后可以使用的文件,子目录可以直接是类文件也可以是文件夹,例如AFNetworking里面所有可视文件及文件夹(Support Files是pod库生成时自动添加,不需手动操作)
3.podspec文件,这个文件储存的是pod库的配置信息,十分重要,下面会专门介绍
###3.配置podspec文件
####a.新建podspec
命令行进入到.xcodeproj同一级目录,输入pod spec create 库名
,这里的库名跟项目名应该是一致的,之后该级目录下会出现一个.podspec文件
####b.podspec参数说明及配置
s.name = "库名"
s.version = "版本号"
s.summary = "文字描述"
s.homepage = "项目网路地址"
s.license = { :type => “MIT(授权类型)", :file => "授权文件名" }
s.author = { "github账户名" => "github邮箱" }
s.platform = :ios, "8.0"(支持平台及版本)
s.source = { :git => "项目网络地址", :tag => "#{s.version}" }
s.source_files = "库文件路径/*"(这里使用了通配符)
还有一些其他的参数,不是必要的,podspec文件内都有详细说明,可自行配置并保存
###4.将项目更改同步到gihub仓库
命令行顺序输入:
git add .
git commit -m"commit log”
git push -u origin master
这一步是基本的git使用,可以自行百度
###5.将依赖库版本tag推送到github仓库
命令行顺序输入:
git tag "版本号"(同.podspec文件中版本号,注意s.source中的#前如果带v,这里的版本号应为"v版本号")
git push --tags
git push origin master
###6.验证依赖库配置是否成功
命令行顺序输入:
pod spec lint 库名.podspec
稍等片刻后若出现库名.podspec passed validation
则说明配置成功,否则就根据错误提示将上述步骤和数据一一对照修改
##将依赖库配置为本地私有库
将该podspec文件保存到本机的~/.cocoapods/repos/master/Specs目录中,命令行使用pod search 库名
看是否能搜索到该库,若失败则检查上述步骤
##将依赖库配置为网络开源库
###1.注册trunk
命令行输入 pod trunk register 邮箱 "用户名" --description="电脑描述"
(这里可以使用自己的github账户的邮箱和用户名,就不用进入邮件进行验证了,否则进入邮箱打开邮件进行验证)
###2.查看个人信息
命令行输入 pod trunk me
会出现自己的trunk账户信息及已经拥有的依赖库,如果出现错误应该是需要更新gem或者pod了
###3.将别人加入维护团队
命令行输入
pod trunk add-owner 用户名 邮箱
###4.上传库到CocoaPods/Specs代码库
在podspec文件同级目录下,命令行输入
pod trunk push
稍等片刻,若上传成功后会有successfully published
和Tell your friends!
等提示,接下来你就可以使用pod search找到自己制作的依赖库了(为了防止搜索到的是本地的依赖库,故应先将本机的~/.cocoapods/repos/master/Specs目录中podspec文件删除再搜索)
至此,开源依赖库和本地私有库的制作就完成了,对照demo可以更好的理解和实际操作。
##后期坑总结补充(持续补充中。。。)
###1.项目名称和库名称相同时,s.source_files需要分多级书写,放库文件的文件夹名最好不要与项目名或库名一样(否则自己慢慢踩坑),多级文件夹一定要用“/**”正确示例例如s.source_files = "TJConvenientFiles/**/*.{h,m}"
###2更新库版本时,先将.podspec文件里面的版本号和修改的文件提交到git,再重复上面的“5.将依赖库版本tag推送到github仓库”步骤,注意tag号与.podspec文件里面的版本号里面的版本号一致
骚年,祝你成功!