关于CocoaPods私有库的那点事情
私有库
组件化的基本操作
首先得安装好CocoaPods,不懂的童鞋出门右拐找百度
终端命令都是在podspec所在目录,除了pod lib create和pod install
步骤:
1、使用自带的模版库创建
pod lib create 工程名称
依据自己情况选择。平台:iOS/macOS 、 语言:Swift/ObjC 、 demo testing 、frameworks:Specta/Kiwi/None based testing :、 前缀:比如XM
2、编写好自己的库,放到与工程名.podspec同级的工程名目录下的Classes内
3、测试代码
终端到Example目录,然后pod install 安装。然后完善demo即可,打开Example下的workspcae,import你的代码进行测试。每次更新代码都要pod install才会加载最新的代码。
4、修改podspec文件
git上面创建代码仓库,得到主页地址和代码地址,我这里使用gitlab,使用git or 其他也可以的。
一般如https://github.com/user/projectname 和https://github.com/user/projectname.git
再创建一个索引git仓库,主页https://github.com/user/xxxxxrepo和https://github.com/user/xxxxxrepo.git,里面放你的podspce文件。
homepage写索引的主页,source写代码的git下载地址。为什么这样做呢,不然每次pod时候直接pod工程了。这里只.cocoapod拉取的是索引仓,但是pod下来的是库。
name 使用Pod时候的name
version pod版本
summary 工程简介
description 更具体的描述
homepage 工程的主页 eg:https://github.com/user/projectname
# s.screenshots = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"
――― Spec License ――――――
license 证书,默认即可。
――― Author Metadata ―――――
author 作者
# s.authors = { "MiftMy" => "" }
# s.social_media_url = "http://twitter.com/MiftMy"
――― Platform Specifics ――――――
platform :ios, "9.0" #版本
# s.ios.deployment_target = "5.0"
# s.osx.deployment_target = "10.7"
# s.watchos.deployment_target = "2.0"
# s.tvos.deployment_target = "9.0"
――― Source Location ――――――
source 库下载路径 eg:https://github.com/user/projectname.git
――― Source Code ―――――
source_files 资源文件路径:同.podspec开始
ios.deployment_target iOS版本
――― Resources ―――――
resource 单个资源文件
resources 资源文件,路径同source_files一样,多个以逗号隔开。eg:ttf文件,"XImageEdit/**/*.ttf"
preserve_paths
――― Project Linking ―――
prefix_header_contents pch包含的文件,然后每个文件就没必要都导入了。eg: ‘#import“Masonry”’
library 依赖系统tdb库,去掉lib,
libraries 多个以逗号隔开。eg:依赖libiconv,‘iconv’
framework
frameworks 依赖系统的库,以逗号隔开
――― Project Settings ―――
requires_arc 使用rac
dependency 依赖的三方库,多个就有多个dependency。eg:dependency 'AFNetworking', '~> 2.3'
附录附带一个栗子,栗子,栗子,大家可以餐烤。
5、代码没问题后本地校验一下
pod lib lint --verbose --allow-warnings
verbose是打印输出日志,allow-wanings允许警告,不然所有的警告都当错误提示了。
如果有错误,搜索** build,提示error的标签,然后再网上找,找到具体错误,按照提示修改即可。
也可以添加–fail-fast,一旦错误就立马中断校验。
如果有静态库,请添加–user-libraries
如果依赖自己的私有库,请添加pod的官方地址和自己的私有地址
看到xxxlib passed validation就代表本地校验没问题。
-sources='https://gitlab、xxxrepo.git','https://github.com/CocoaPods/Specs.git'
6、代码库关联索引库
第一次的时候才使用
pod repo add projectName https://gitlab/xxxx.xxxrepo.git
projectName可以随意,最好跟工程名字一样,方便查找。
然后在用户名/.cocoapods/repos/里面会找到你新建的仓库名字
7、上传代码到远端
git 打上标签,跟podspec上的版本一致,然后推送所有代码和标签。
使用命令推送到远端
pod repo push projectName projectName.podspec --allow-warnings
看到没有错误即成功。第一个projectName赛事第六步的名字,第二个是本地工程的名字,所以第六步我让你创建一样名字的。pod 搜索是podspec里面的name值,一般也取工程名称。
8、更新内容
每次更新,都需要更新一个版本号,修改内容,可以不用校验本地直接打标签、推送代码,只校验远程的。
9、别人使用你的私有库
在podfile头部添加source,官方的和自己的,就可以像平常使用pod 三方库一样。每次别人更新私有库的时候,你需要到.cocoa对应的库自己拉取索引文件,使用git fetch 加 git pull命令拉取。第一次没有索引库就自己添加,使用pod repo add projectName https://gitlab/xxxx.xxxrepo.git即可
source 'https://gitlab.xxxx
source 'https://github.com/CocoaPods/Specs.g