学习使用CocoaPods相关

现在开发依赖cocoapods越来越多,下面介绍配置与发布自己的cocoapods.

1.配置cocoapods环境

  • CocoaPods版本检测(最新版本0.39.0): pod --version
  • rubygems.org的镜像变化,由之前的http://ruby.taobao.org/换成了https://ruby.taobao.org/
  • 切换gem的源: gem sources --add https://ruby.taobao.org/ --remove http://ruby.taobao.org/
  • 查看电脑当前源: gem sources -l
  • 更新gem: sudo gem update --system
  • 安装或更新CocoaPods: sudo gem install cocoapods
  • 设置: pod setup
  • 以上都执行成功后,再执行一下第一步的pod --version 检测是否是最新版本

2.在自己的工程从cocoapods导入第三方

  • 在你们工程目录新建一个命名为Podfile的文件;注意是先创建自己的工程,然后在.xcodeproj同级目录里新建Podfile
  • 在Podfile里面编辑你要引入的第三方,如下是一个引入FPS监控的第三方库
  • platform :ios, "6.0"
    use_frameworks!
    pod 'MNFrameRate','~> 0.0.2'
  • ~后面的> 符号可以是<,代表要获取小于'0.0.2'的版本,即获取的是'0.0.1'版本
  • 执行pod install 或 pod update
  • 然后打开工程目录中的.xcworkspace文件,在Project中可以找到Pods层级
  • pod install/update 比较慢。加参数 pod install/update --verbose --no-repo-update

Cocoapods官方:https://cocoapods.org/#get_started


3.发布自己的开源项目到cocoapods上

  • 首先创建自己的开源工程,然后把工程在github提交
  • 在工程目录下执行(project_name是你自己定义的开源名称):pod spec create project_name
  • 执行完成当前目录下生成一个project_name.podspec的文件,用文本编辑器打开此文件
  • .podspec文件可以参考;请注意他的文件内容,有些#注释的地方要放开;请参考项目配置例子 name: 导入pod后的目录名 version: 当前版本号 deployment_target: 配置的target prefix_header_file: 预编译头文件路径,将该文件的内容插入到Pod的pch文件内 source: 来源的具体路径,是http链接还是本地路径 requires_arc: 是否需要arc source_files: 指定该目录下包含哪些文件 其他可选参数还包括: dependency: 指定依赖,如果依赖的库不存在或者依赖库的版本不符合要求将会报错 libraries: 指定导入的库,比如sqlite3 frameworks: 指定导入的framework weak_frameworks: 弱链接,比如说一个项目同时兼容iOS6和iOS7,但某一个framework只在iOS7上有,这时候如果用强链接,那么在iOS7上运行就会crash,使用weak_frameworks可以避免这种情况。
  • 里面关于s.source_files,这个要注意是你开源文件的目录,不是工程所在目录,如https://github.com/ymsheng/MNFrameRate,我需面写的是s.source_files = "FrameRate/MNFrameRate/*.{h,m}"
  • 其他几个坑:s.license="MIT",s.platform=:ios, s.source= { :git => "https://github.com/ymsheng/MNFrameRate.git", :tag => "0.0.1" }(这是自己开源项目的git地址,和##tag##版本)
  • cocoapods为了区别版本,需要给你每次修改的开源项目打tag
  • $ git add -A && git commit -m "Release 0.0.1."
    $ git tag '0.0.1'
    $ git push --tags
  • 准备完以上再执行:pod lib lint,把相关的报错都解决了,如果有问题就看上面注意的几点
  • 上面命令执行成功后,说明你的代码可以放到cocoapods上了,邮箱,自己的名字,描述;执行:pod trunk register youreamil@xx.com 'your name' --description='macbook air'
  • 在你上面命令的邮箱中找到cocoapods发你的邮件,打开相关链接
  • 现在执行:pod trunk me;看到相关的注册信息了,此帐号和你的电脑绑定
  • 开始提交到线上,执行:pod trunk push project_name.podspec
  • 如果执行成功的话:pod search project_name,就可以在cocoapods上找到你项目相关
  • 现在别人也可以通过 pod "project_name"找到你的开源工程。如果上面有问题,请从#关于cocoapods相关验证自己的cocoapods是否安装正确
  • 如果发现pod search没有找到自己的新pod,执行:
    1.rm ~/Library/Caches/CocoaPods/search_index.json
    2.pod repo update
    3.pod search --simple yourPodName
  • 如果要升级版本你的开源代码,执行:
    1、git tag '0.0.2'
    2、git push --tags
    3、修改project_name.podspec中的 s.source={ :git => "https://github.com/ymsheng/MNFrameRate.git", :tag => "0.0.1" }
    4、pod lib lint
    5、pod trunk push project_name.podspec
  • 增加同事共同管理:pod trunk add-owner YourPodName yourMate@mail.com

pod trunk官方:guides.cocoapods.org