热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Cocoapods整理(四)——搭建Cocoapods私有库环境

Cocoapods整理(四)——搭建Cocoapods私有库环境目录前言搭建Cocoapods私有库环境其他的一些技巧前言在懂得如何写podspec之后,我们来创建一个自己的私有库

Cocoapods整理(四)——搭建Cocoapods私有库环境

目录

  • 前言
  • 搭建Cocoapods私有库环境
  • 其他的一些技巧

前言

在懂得如何写podspec之后,我们来创建一个自己的私有库吧。在此之前我们先了解一下pod的工作过程。

《Cocoapods整理(四)——搭建Cocoapods私有库环境》

cocoapods其实就是利用所维护的podspec文件,在使用方和提供方之间建立一个桥梁;并利用与项目关联的Pod项目去维护所有三方库。

所以如果想要搭建Pod私有库环境,则需要创建一个类似于pod官方的repo库,让这个repo库去保存自己写的三方库的podspec文件。

以下均以我自己写的一个私有库ZCPKit去介绍。

搭建Cocoapods私有库环境

步骤:

1.创建一个私有的repo库

2.准备一个写好的podspec文件的三方库

3.校验三方库

4.向私有的repo库中提交podspec

5.更新repo

6.搜索该三方库进行验证

1> 创建私有的repo库

首先创建一个空的git仓库myrepo,然后使用下面的命令将其添加到repos中。

pod repo add [repo名] [repo git地址]
例如:
pod repo add myrepo https://git.coding.net/zcp164757979/myrepo.git

可以通过pod repo list命令验证是否添加成功。

《Cocoapods整理(四)——搭建Cocoapods私有库环境》

2> 准备一个写好的podspec文件的三方库

以上一节写好的ZCPKit为例

https://git.coding.net/zcp164757979/ZCPKit.git

需要注意的是:

1. 要记得将代码提交到远端

2. 要记得打tag,每个tag对应一个三方库版本

3. podspec文件中version的值要与git中的一个tag对应

《Cocoapods整理(四)——搭建Cocoapods私有库环境》

《Cocoapods整理(四)——搭建Cocoapods私有库环境》

3> 校验三方库

使用下面的命令进行校验:

pod spec lint
pod spec lint --allow-warnings
// 此命令可以加参数,可使用pod spec lint --help查看所有参数

4> 向私有的repo库中提交podspec

使用下面命令进行提交:

pod repo push [repo名] [三方库podspec文件路径]
例:
pod repo push myrepo ZCPKit.podspec
pod repo push myrepo ZCPKit.podspec --allow-warnings
// 此命令可以加参数,可使用pod repo push --help查看所有参数

每一次提交相当于一个版本,podspec文件中的version要在git上有对应的tag才能提交成功。

《Cocoapods整理(四)——搭建Cocoapods私有库环境》

5> 更新repo

pod repo update [指定repo]
例如:
pod repo update // 更新所有repo
pod repo update myrepo // 更新指定repo

《Cocoapods整理(四)——搭建Cocoapods私有库环境》

6> 搜索该三方库进行验证

《Cocoapods整理(四)——搭建Cocoapods私有库环境》

其他的一些技巧

1> Podfile引入三方库的几种写法

首先附上官网针对这块的介绍:The Podfile

podfile最基本引入三方库的写法如下:

pod 'AFNetworking'
pod 'AFNetworking', '3.1.0'

此外还有其他几种引入三方库的写法:

// 指定三方库本地路径的写法(用于提交前进行测试)
pod 'AFNetworking', :path => '~/Desktop/AFNetworking'
// 指定git的写法
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :branch => 'dev'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => '3.1.1'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :commit => '0f506b1c45'
// 指定podspec的写法
pod 'AFNetworking', :podspec => '~/Desktop/AFNetworking/AFNetworking.podspec'
// 指定subspecs的写法(这也是subspec的另一个用法)
pod 'MyThirdparty', '~> 0.0.1', :subspecs => ['Sparta', 'GotyeSDK', 'TalkingData', 'Tingyun', 'BaiduPanorama']

2> 调试私有库管理的三方库

使用上述的指定三方库本地路径的写法:

// 指定三方库本地路径的写法(用于提交前进行测试)
pod 'ZCPKit', :path => '~/Desktop/ZCPKit'

效果如下:

《Cocoapods整理(四)——搭建Cocoapods私有库环境》

需要注意的是:处于开发环境的三方库是通过引用方式导入项目,也就是说修改文件内容相当于修改源文件内容。而其他写法是将三方库文件copy一份导入项目中。

回顾

Cocoapods整理(一)——安装Cocoapods
Cocoapods整理(二)——使用Cocoapods
Cocoapods整理(三)——编写podspec文件

本篇文章的repo demo:myrepo
私有库demo:ZCPKit

个人的repo:zcprepo
私有库:ZCPKit

参考文章:

使用Cocoapods创建私有podspec


推荐阅读
  • Flutter入门指南:实现自动关闭的对话框与提示
    本文为Flutter系列教程的一部分,专注于讲解如何在Flutter应用中实现自动关闭的对话框和提示。通过具体的代码示例,帮助开发者掌握SnackBar、BottomSheet和Dialog的使用方法。 ... [详细]
  • Git SSH配置及远程仓库操作指南
    本文介绍了如何配置Git环境,包括设置用户信息、生成和添加SSH密钥,并详细说明了如何通过SSH连接到远程仓库进行版本控制操作。 ... [详细]
  • 软件项目管理实践——Jenkins持续集成与Maven、GitHub的应用
    本文详细介绍了如何利用Jenkins实现持续集成,以及Maven和GitHub在项目开发中的具体应用。包括环境搭建、工具安装、项目创建及代码管理等关键步骤。 ... [详细]
  • 框图|中将_DA14531 学习笔记经验总结
    框图|中将_DA14531 学习笔记经验总结 ... [详细]
  • 利用NVM实现Node.js多版本管理
    本文详细介绍如何使用NVM(Node Version Manager)进行Node.js的多版本管理,包括安装配置、版本切换等操作。 ... [详细]
  • 本文详细介绍了C++标准模板库(STL)中各容器的功能特性,并深入探讨了不同容器操作函数的异常安全性。 ... [详细]
  • OpenWrt 是一款高度可定制的嵌入式 Linux 发行版,广泛应用于无线路由器等领域,拥有超过百个预装软件包。本文详细探讨如何在 OpenWrt 上通过 Luci 构建自定义模块,以扩展其功能。 ... [详细]
  • 今天我在操作Git时遇到了一个问题,即我的仓库进入了分离的HEAD状态,这与之前讨论过的‘即使本地有更改,git push仍显示所有内容最新’的问题类似。 ... [详细]
  • 如何在Android项目中使用Framework.jar或其他系统Jar包
    本文介绍了一种方法,通过创建自定义库目录来集成系统的Jar包,以避免方法数限制,并确保项目的顺利编译。首先,需要在项目的src同级目录下创建一个专门用于存放系统Jar包的目录。 ... [详细]
  • Spring框架中的关键配置文件详解
    本文详细介绍了Spring项目中常见的配置文件,包括pom.xml和spring.xml的作用与使用方法。pom.xml用于管理项目依赖,而spring.xml则负责Bean的定义与初始化。 ... [详细]
  • Android 手机安全应用首屏布局设计
    本文详细介绍了如何构建一个功能丰富的手机安全应用的首个导航界面布局。通过实例代码和效果展示,帮助开发者快速理解和实现相关功能。 ... [详细]
  • 本文介绍了Android中常见的动画类型及其应用场景,通过具体的代码示例展示了如何在Activity跳转时添加平滑过渡效果,提升用户体验。 ... [详细]
  • 下面根据配置文件,来说明一些底层与webservices的关系:回顾一下servlet的映射模式。我们知道,servlet是从javax.servlet.http.HttpServ ... [详细]
  • 多版本CUDA共存与即时切换方案
    本文探讨了在同一台机器上安装并管理多个CUDA版本的方法,以适应不同软件或项目的需求。特别是在使用旧版PyTorch等依赖特定CUDA版本的软件时,该方法尤为实用。 ... [详细]
  • 本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ... [详细]
author-avatar
莣Q楽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有