美文网首页
cocoaPods管理

cocoaPods管理

作者: 哥只是个菜鸟 | 来源:发表于2021-02-09 16:30 被阅读0次
主要是方便管理引进的第三方SDK,一般都需要依赖一些系统的库,全部放在Build Phases里面就比较难管理,到后面会越来越多,而且还不敢随意删除,怕引起别的问题,所以每一个SDK都有自己的引用库独立的放在各自Pods里面就很方便。

1.创建pod本地库

//首先cd到自己的工程目录下面

cd /Users/wangjian/Desktop/demo 

//pod init 初始化可以自动创建一个podfile,如果本身即是pod的管理那就不需要了

pod init

2.直接在工程目录下面创建podspec文件

pod spec create xxxSDK  //SDK的名字
image.png
image.png

3.创建成功之后,打开编辑podspec文件,可以用文本编辑器打开,后期生成workspace就可以直接在xcode打开编辑,一些注释信息可以不要,剩下如下信息:

Pod::Spec.new do |spec|
  spec.name         = "xxxSDK"
  spec.version      = "2.15.0"
  spec.summary      = "A short description of xxxSDK."
  spec.description  = <<-DESC
  ios sdk 哈哈哈啊哈
                   DESC

  spec.homepage     = "https://xxxSDK"
  spec.license      = { :type => 'LGPL', :text => "Beijing NetworkBench Inc.©2007-2020 All rights reserved." }

  spec.author             = { "王健" => "2576175431@qq.com" }

  spec.platform     = :iOS
  spec.platform     = :ios, "7.0"

  spec.source       = { :git => "xxxSDK的gitlab地址", :tag => "#{spec.version}" }

  spec.libraries = 'z', 'c++', 'resolv'//依赖的系统.tbd
  spec.frameworks = 'WebKit', 'Security', 'CoreTelephony', 'SystemConfiguration', 'JavaScriptCore', 'CoreGraphics', 'QuartzCore', 'CFNetwork'//依赖的系统.frameworks
  spec.vendored_frameworks = 'xxxSDK.framework'//
  
end

4.Podfile里面填写本地pod路径

pod 'XXXSDK', :path => './LocalPods/XXXSDK'
image.png

5.进行pod验证

pod lib lint

6.最后拉取本地库

pod install --verbose --no-repo-update
image.png
  • 根据Podfile或者Podfile.lock用于安装第三方库,第一次安装会安装指定的版本或者最新版本,在Podfile.lock中锁定列出的那些库,之后的执行也仅仅只是去下载Podfile.lock中指定的版本,并不会去检查最新的版本。
pod install
  • 当你想要更新pod库的版本时才使用pod update;它不管Podfile.lock指定的版本号, 都会读取最新的的版本信息去下载安装,然后更新Podfile.lock的版本号
pod update

inhibit_all_warnings! # 消除第三方库警告
pod 'AMapLocation' 安装最新版本
pod 'AMapLocation' , '~> 1.0' 安装>=1.0<2.0的版本
pod 'AMapLocation' , '1.0' 指定版本

1. 一般情况下, 每个人从共享库把项目下载下来之后, 都会执行pod install命令安装,而不是选择 pod update,这样是为了保证大家使用的第三方框架版本一致。如果以后大家需要统一升级第三方框架, 那么每个人在执行 pod update
2.pod install --repo-update检查框架有没有新版本发布
3.pod install --no-repo-update跳过检查框架有没有新版本发布

提交到cocoapods记录

一,首先在github上面新建仓库拿到git地址,设置tag重要
image.png
二,基于cocoapods 自动创建工程
pod lib create 项目名
  • 回答问题
# 你想使用哪个平台?
1、What platform do you want to use?? [ iOS / macOS ]
iOS
# 库语言选择?
2、What language do you want to use?? [ Swift / ObjC ]
ObjC
# 是否需要一个demo工程,用于调试Pod?
3、Would you like include a demo application with your library? [ Yes / No ]
Yes
# 你要使用哪个测试框架?
4、Which testing frameworks will you use? [ Specta / Kiwi / None ]
None
# 是否要UI测试?
5、Would you like to do view based testing? [ Yes / No ]
NO
# 类名前缀?
6、What is your class prefix?
XK
  • 生成工程


    image.png
  • 设置.podspec文件,要注意s.source_files文件的路径,将工具类代码拷贝到Classes目录下

Pod::Spec.new do |s|
  s.name             = 'CrashHook'
  s.version          = '1.0.0'
  s.summary          = 'A short description of CrashHook.'
  s.homepage         = 'https://github.com/wangjian201314/CrashHook'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'wangjian' => '2576175431@qq.com' }
  s.source           = { :git => 'https://github.com/wangjian201314/CrashHook.git', :tag => s.version.to_s, :commit => "2dfc6924c160d7222571330fb15eb20fa3974a1b" }
  s.ios.deployment_target = '9.0'
  s.source_files = "CrashHook/Classes/*.{h,m}"
end
image.png
  • 配置完 podspec的信息 且引入类库之后,需要更新提交到Github上,不然会验证上一次提交的信息

三,验证podspec

pod lib lint --allow-warnings
pod spec lint --allow-warnings
  • 最容易出现的问题
- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file
  • 解决办法
open /Users/用户名/Library/Caches/CocoaPods/Pods/External/项目名

将工具类拷贝到目录下面,和s.source_files路径一致


image.png

再重复上面的步骤,如果还不行就设置如下,比默认设置的多了一个
:commit => "2dfc6924c160d7222571330fb15eb20fa3974a1b" ,保持最新提交

s.source           = { :git => 'https://github.com/wangjian201314/CrashHook.git', :tag => s.version.to_s, :commit => "2dfc6924c160d7222571330fb15eb20fa3974a1b" }

四,推送podspec到远程仓库

  • 没有注册账户的先注册
pod trunk register 邮箱地址 '用户名' --verbose

pod trunk me
  • 推送
pod trunk push xxx.podspec --allow-warnings 
image.png

五,检查项目podspec是否上传成功

pod search xxxx

搜不到的解决方法如下:(后面发现项目中pod install 可以安装,但是就是搜索不到,别担心,只是cocoapods库还没更新上去,等第二天再搜索就有了)

需要更新本地的repo
执行命令 pod setup 或者 删除本地的搜索索引 rm ~/Library/Caches/CocoaPods/search_index.json
,再次执行 pod search XKCocoapods

六,更新库版本

  • 修改版本号


    image.png
  • 修改tag
git tag 1.0.1
git push orgin 1.0.1
  • 或者github修改tag


    image.png
  • 添加或者更改文件,记得再执行pod install,podsepc文件source路径中的:commit => "2dfc6924c160d7222571330fb15eb20fa3974a1b" 也要保持最新提交,否则cocoapods更新上去会找不到代码,后面发现这个commit去掉也可以提交成功了,默认是最新提交了,不知道为啥😄

  • 接着上面第三步操作就👌🏻了

相关文章

  • CocoaPods学习笔记

    CocoaPods(https://github.com/CocoaPods/CocoaPods)用来管理其他第三...

  • CocoaPods安装

    CocoaPods安装 CocoaPods是什么鬼?## Cocoapods是类库管理工具。 CocoaPods有...

  • CocoaPods使用

    什么是CocoaPods CocoaPods就是一种依赖管理工具。CocoaPods项目的源码在Github上管理...

  • CocoaPods管理私有库

    CocoaPods管理私有库 CocoaPods介绍 CocoaPods是帮助管理xcode项目第三方开源库的一个...

  • CocoaPods 便捷手册

    CocoaPods 便捷手册 安装 CocoaPods CocoaPods 的安装都是通过 gem 来管理,所以安...

  • 创建自己的私有cocoaPod库

    CocoaPods进阶:本地包管理 使用Cocoapods创建私有podspec

  • CocoaPods 简介、安装和使用

    介绍 iOS 程序提供依赖管理的工具--CocoaPods。CocoaPods项目的源码 在 Github 上管理...

  • CocoaPods pod install 与 pod upda

    CocoaPods是什么? CocoaPods是工程依赖管理工具。 CocoaPods中的文件: Podfile:...

  • CocoaPods版本升级

    CocoaPods版本升级 使用CocoaPods管理项目类库 错误现象 失败,提示需要CocoaPods 1.0...

  • iOS开发Tips-02

    CocoaPods管理依赖库 搜索一般用CocoaPods官网或者Github https://cocoapods...

网友评论

      本文标题:cocoaPods管理

      本文链接:https://www.haomeiwen.com/subject/caqemktx.html