CocoaPods搭建私有库

1,730 阅读3分钟

一、创建Spec Repo的私有远程仓库

1、在git远程服务器创建一个Spec Repo的私有仓库,XXXSpecs,用来存储Spec Repo的私有仓库

2、创建本地Spec Repo

  1. 前往文件夹 ~/.cocoapods/repos,打开终端

  2. 在终端切换到当前目录下执行:pod repo add XXXSpecs https://gitee.com/username/XXXSpecs.git

gitee.com/username/XX… 是Spec Repo的私有远程仓库地址 pod repo list:查看本地Spec Repo 在新机器可以配置私有库到本地cocoapods

3、在git远程创建一个私有仓库,XXXPodProject,用来存放项目工程文件。

创建时不要初始化

4、创建pod的所需的项目工程文件,并上传到远程私有仓库

  1. 在终端,cd切换到某个目录下
  2. 执行pod lib create PodLibName
What platform do you want to use?? [ iOS / macOS ]
 > ios

What language do you want to use?? [ Swift / ObjC ]
 > swift

Would you like to include a demo application with your library? [ Yes / No ]
 > yes

Which testing frameworks will you use? [ Quick / None ]
 > none

Would you like to do view based testing? [ Yes / No ]
 > yes 

5、修改文件及podspec

  1. 修改文件及podspec 配置,添加swfit版本 s.swift_version = '4.2'
  2. 打标签tag
  • 创建标签 git tag 1.0.0
  • 推送标签 git push --tag
  • 查看标签 git tag

6、验证本地podspec有效性

pod lib lint PodLibName.podspec

7、 将本地项目文件上传到远程仓库中

git remote add origin url

这里需要重点注意的是,我们给打的标签值要与podspec文件中的版本号一致。

8、向私有的spec Repo远程仓库中提交podspec

将Lib仓库和Spec Repo进行关联 使用 pod repo push XXXSpecs PodLibName.podspec 命令把私有库添加到私有repo中。 此时,~/.cocoapods/repos/XXXSpec 文件夹下已经有当前版本的podspec文件了

二、新电脑配置本地私有库

  1. 终端cd ~/.cocoapods/repos
  2. 配置远程私有库pod repo add XXXSpecs https://gitee.com/username/XXXSpecs.git

三、创建新的lib到AHSpecs

  1. 创建pod lib create PodLibName
What platform do you want to use?? [ iOS / macOS ]
 > ios

What language do you want to use?? [ Swift / ObjC ]
 > swift

Would you like to include a demo application with your library? [ Yes / No ]
 > yes

Which testing frameworks will you use? [ Quick / None ]
 > none

Would you like to do view based testing? [ Yes / No ]
 > yes 
  1. 验证lib pod lib lint PodLibName.podspec
  2. 关联(推送)lib到AHSpecs pod repo push XXXSpecs PodLibName.podspec

每次lib更新之后也需要push

四、上传cocoapods

pod trunk push  <私有代码库>.podspec
提示你去注册。输入你的Email和姓名,然后去邮箱验证通过。

pod trunk register Email 'username' --verbose
pod trunk push  <私有代码库>.podspec

五、遇到的问题

  • iOS 私有库中依赖私有库 且有第三方framework的处理

  • 使用--allow-warnings参数,例如pod repo push --allow-warnings,这样可以忽略掉一些警告信息,但是如果有错误信息,还是会中断推送。

  • 使用--skip-import-validation参数,例如pod repo push --skip-import-validation,这样可以跳过验证podspec文件中的source_files是否能正确导入,这个参数对于一些依赖了第三方框架的私有库比较有用,因为有时候在.h文件中import <>会导致验证失败。

  • 使用--use-libraries参数,例如pod repo push --use-libraries,这样可以在验证时使用静态库而不是动态库,这个参数对于一些依赖了静态库的私有库比较有用,因为有时候动态库会导致验证失败。