热门标签 | 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


推荐阅读
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 我的iOS开发入门自学路径
    我有一个清单,列着希望在大学里完成的事。比如,学一门乐器,和朋友去旅游,搭建自己的博客,去滑翔,看各主题的书籍。其中一项是,写自己的App并且上架。去年开始,我准备完成这一项,所以 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 最近在使用cocoapods的时候,当输入podinit的时候,iOS项目目录中没有出现对应的Podfile文件.问题描述:使用podinit出现badinterpreter:No ... [详细]
  • Objective C接入Sonar代码扫描
    目录技术方案环境准备扫描器配置项目配置SonarQube配置jenkins接入一些坑技术方案Sonar本身有对OC的代码扫描插件——SonarCFamily,但是是收费的。出于成本 ... [详细]
  • 闭包(Closures)是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。Swift中的闭包与C和Objective-C中的代码块(blocks)以及其他一些编程语言中的 ... [详细]
  • jsappsugar,基于,js,语法,定义 ... [详细]
  • iOS Open Source : Popover API for iPhone
    iOS Open Source : Popover API for iPhone ... [详细]
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社区 版权所有