iOS开发-制作cocoapod

445 阅读4分钟

1.打开Xcode新建一个工程,命名为cocoapodTest

2.然后在appdelegate同级目录下新建Classes文件夹,这个文件夹用来存放核心代码,

1.png

3.打开终端,cd 到工程根目录

2.png

4.执行git init 初始化一个本地git仓库

5.在github上同样创建一个cocoapodTest,最好保持同名,需要注意的是,在创建仓库的时候需要添加license类型,这里我使用license类型为MIT

3.png

6.关联本地仓库到远程仓库

4.png

copy 远程仓库的链接

git remote add origin https://github.com:yxg0728/cocoapodTest
git fetch
git merge origin/master master

或者执行

git remote add origin https://github.com:yxg0728/cocoapodTest
git pull

因为git pull = git fecth + git merge

7. 添加{project}.podspec文件

依赖库所需的文件格式为{project}.podspec格式,每个Pods依赖库必须有这个描述文件

pod spec create cocoapodTest

5.png

这样就生成了cocoapodTest.podspec文件,打开该文件添加内容,并删除不需要的:

Pod::Spec.new do |s|

  s.name         = "cocoapodTest"
  s.version      = "0.0.1"
  s.summary      = "制作cocoapod库"

  s.description  = <<-DESC
       这是一个制作cocoapod库的项目
                   DESC

  s.homepage     = "https://github.com/yxg0728/cocoapodTest"
  s.license      = "MIT"
  s.author       = { "yxg0728" => "yxg0728@163.com" }
  s.platform     = :ios,'6.0'

  s.source       = { :git => "https://github.com/yxg0728/cocoapodTest.git", :tag => "#{s.version}" }
  s.source_files = "cocoapodTest/Classes/*.{h,m}"
  s.framework    = "UIKit"
  s.requires_arc = true
end

s.source_files指向项目的核心代码,放在项目的cocoapodTest/Classes/*.{h,m}

8.pod验证

pod lib lint

pod lib lint是基础校验命令,用来校验本地.podspec文件的,如果要校验远程,把lib改为spec即可。(spec会同时验证本地和远程是否通过

  • 如果使用了第三方库,需要在后面加上--use-libraries参数
  • 如果因为有警告导致报错的,可以加上--allow-warnings参数解决
  • 如果需要输出详细信息,可以加上--verbose参数
  • 如果是私有的repo库要就要加上--sources=“私有库的地址”
  • 提示passed validation即为校验通过
  • 提示[!] The spec did not pass validation即为校验失败
  • 只有校验通过了,才能进行下一步操作
  • 一般来说,只需要校验本地即可

无报错则进行下一步,有报错则根据报错信息改正

6.png

9.提交代码到github

git add .
git commit -m "version 0.0.1"
git push -u origin master

git push -u origin master

相当于

git branch --set-upstream-to=origin/master master

//将远程仓库origin的master分支与本地仓库master分支关联

git push origin master

打上标签

git tag 0.0.1
git push --tags

不出问题的话,就可以在github上看到最新提交的内容了

10.上传{project}.podspec到CocoaPods官方仓库中

要想一个cocoapodTest库真正可以用,就得把生成的cocoapodTest.podspec文件提交到Cocoapods官方的Specs仓库中,才能被pod search到并正常使用

CocoaPods为我们提供了一个很方便安全的方法 trunk

Trunk的Register

如果第一次使用的话那么就需要注册了,需要cocoapods 0.33版本以上才支持

接下来的几个步骤需要自备梯子,否则可能会够不着

pod trunk register youremail@163.com 'yourname' --description='MacBookPro' --verbose

以上命令是注册所需的,替换你的邮箱,用户名,以及描述内容, --verbose可以输入详细的debug

完成后需要去邮箱验证一下能继续往下操作, 注册成功以后,可以使用

pod trunk me

7.png

11. 提交{project}.podspec

{project}.podspec文件的路径下执行

pod trunk push cocoapodTest.podspec

如果出现警告加上 --allow-warnings

pod trunk push cocoapodTest.podspec --allow-warnings

关于 --allow-warings还有其他相关的参数也可以尝试

--sources="xxxx"  对应远端仓库地址

--verbose  输出详情

--allow-warnings 允许警告

--user-libraries 允许使用静态库

--skip-import-validation 跳过验证

这条命令做了如下三件事:

  • 验证本地的podspec文件, 如果要校验远程,把pod lib lint改为pod spec lint即可
  • 上传podspec文件到trunk服务
  • {project}.podspec文件转为{poject}.podspec.json文件

8.png

这里是用的我制作第一个库上传成功的截图,^_^

push成功之后使用

12 pod search xxx

终端执行 pod search cocoapodTest就可以找到了,

如果没有找到 pod setup再试一下

搜索到自己制作的库啦 9.png

如果多人维护pod 可以添加其他维护者:pod trunk add-owner name xxx@xxx.com

整个制作pod库的流程就是这样,欢迎交流O(∩_∩)O哈哈~

附上一位兄弟的制作私有库教程 # iOS开发- 创建私有库发布CocoaPods及更新