构建一个自己的库供其它人使用是不是一件很酷(苦)的事情,通过CocoaPods 可以快捷的构建自己库,并向全世界分享你的成果

一、创建 Podspec

有两种方式:

  1. 使用命令 pod lib create mylib 创建一套完整的 Pod 库模版
  2. 使用命令 pod spec create mylib 创建 Podspec 的配置文件

二、配置 Podspec

官网说明:https://guides.cocoapods.org/syntax/podspec.html#specification

Pod::Spec.new do |spec|
spec.name = 'libminipng'
spec.version = '0.0.5'
spec.license = { :type => 'MIT' }
spec.homepage = 'http://www.ichochy.com'
spec.authors = { 'iChochy' => 'iChochy@qq.com' }
spec.summary = 'Swift library that compresses PNG'
spec.source = { :git => 'https://github.com/iChochy/libminipng.git', :tag => 'v3.1.0' }
spec.source_files = 'libminipng/Classes/**/*'
spec.public_header_files = "libminipng/Classes/libminipng.h","libminipng/Classes/minipng.h"
end

spec.source:检索库的远程地址

支持指定方式:

:git => :tag, :branch, :commit, :submodules
:svn => :folder, :tag, :revision
:hg => :revision
:http => :flatten, :type, :sha256, :sha1, :headers

spec.source_files: 库的源代码

通过正则方式匹配,如:

"JSONKit.?"    #=> ["JSONKit.h", "JSONKit.m"]
"*.[a-z][a-z]" #=> ["CHANGELOG.md", "README.md"]
"*.[^m]*" #=> ["JSONKit.h"]
"*.{h,m}" #=> ["JSONKit.h", "JSONKit.m"]
"*" #=> ["CHANGELOG.md", "JSONKit.h", "JSONKit.m", "README.md"]

spec.public_header_files: 公共头文件

如果OC混编,可以在公共头文件中引入OC文件,如同桥接文件

注:如果未指定公共头文件,那么source_files中的所有文件将被视为公共头文件

三、验证 Podspec

pod lib lint  	//本地验证
pod spec lint //在线验证,检查外部仓库和相关标签

如果出现警告(WARN) ,可以添加--allow-warnings忽略警告

如果出现错误(ERROR),可以添加 --verbose,查看详情

四、创建账号

  1. 注册账号:

    pod trunk register iChochy@qq.com 'iChochy' --description='macbook'
  2. 激活账号:

    完成注册后进入邮件点击激活链接进行激活操作
  3. 查看账号:

    pod trunk me

五、发布 Podspec

pod trunk push [NAME.podspec] 将您的Podspec部署到Trunk,并公开发布

pod repo push REPO [NAME.podspec] 将您的Podspec部署到私有仓库

注:如果出现警告(WARN) ,可以添加--allow-warnings忽略警告


联系方式:

邮箱:iChochy@qq.com

网站:https://www.ichochy.com

源文:https://ichochy.com/posts/20190901/

CocoaPods 构建自己的 Pod 库的更多相关文章

  1. Cocoapods 应用第二部分-私有库相关

    我们在这里,使用的是 第一部分使用pod lib create YohunlUtilsPod 创建的framework工程来说明.其创建过程在此就不重复了,当然你也可以下载我已经创建好的demo ht ...

  2. Cocoapods 创建自己的公开库、私有库

    如何创建自己的共有库 1.注册Trunk trunk需要CocoaPods 0.33版本以上,用pod --version 命令查看版本 CocoaPods版本 如果版本低,需要升级: sudo ge ...

  3. [CocoaPods]客户端加载第三方库

    请先阅读另一篇博文铺垫知识基础:[CocoaPods]终端方式集成第三方库 客户端的Github地址:CocoaPods-app 点击下载客户端: [CocoaPods客户端] 安装下载的文件.软件界 ...

  4. cocoapods 更新本地仓库 pod setup/update 无限远程中断

    升级 cocoapods 无限远程中断:网络不好 试了很多解决方法: 1.替换源,2.设置下载速度,3.清空本地master仓库,4.删了本地的pod库,5.半夜3-5点更新,6.按照失败提示的 (p ...

  5. 使用CocoaPods创建自己的私有库-iOS组件化第一步

    目前iOS组件化常用的解决方案是Pod+路由+持续集成,通常架构设计完成后第一步就是将原来工程里的模块按照架构图分解为一个个独立的pod工程(组件),今天我们就来看看如何创建一个Pod私有库. 新建: ...

  6. Mac终端的Cocoapods创建自己的私有库和公有库

    一,前言 为什么要用Cocopods 通常在开发的过程中,大多时候,我们会处理一类相同的操作,比如对于字符串String的邮箱验证,是否为空,手机号验证,或者一些UIView的动画操作,我们为了避免写 ...

  7. 制作自己的Pod库(公有/私有)

    https://www.jianshu.com/p/ece0b5721461 2018.04.12 16:43* 字数 1168 阅读 244评论 0喜欢 1 目的:1.管理自己常用的类:2.组件化开 ...

  8. 第3章 文件I/O(8)_贯穿案例:构建标准IO函数库

    9. 贯穿案例:构建标准IO函数库 //mstdio.h #ifndef __MSTDIO_H__ #define __MSTDIO_H__ #include <unistd.h> #de ...

  9. iOS组件化开发一pod库包含MRC的文件处理(五)

    在做项目的过程中,建立了一个私有pod库,在这个库中存在mrc类文件这个时候如果在使用了arc的工程中引用这个pod的工程中手动设置当然也可以就是费时费力.现在我们来看看如何在私有库配置文件里配置自动 ...

随机推荐

  1. GoldenEye靶机work_through暨CVE-2013-3630复现

    前言 备考OSCP,所以接下来会做一系列的OSCP向靶机来练手 靶机描述 I recently got done creating an OSCP type vulnerable machine th ...

  2. 「Leetcode-算法_MId1006」从单栈到双栈

    Mid 1006 笨阶乘 栈/后缀 运算优化 + 栈 思路描述 每四个数一组 这四个数中前三个会进行乘.除 然后与最后一个相加 Stack 入前三个之和 与 最后一个数 以 4 举例 运算式 4 * ...

  3. SpringBoot-11 扩展功能

    SpringBoot-11 扩展功能 异步 同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列.要么成功都成功,失败都失败,两个任务 ...

  4. WordPress的SEO优化技巧

    世界上大约有30%的网站都是由Wordpress搭建的,因为Wordpress自身构架清晰,代码规范,且网页评论直接书写在整个页面里,能够被搜索引擎检索到,因此对搜索引擎很友好.但有时候还是会出现只被 ...

  5. HTML5和CSS3 PC端静态网页琐碎知识点

    1.PC端为了兼容IE9以及IE9以下,尽量要使用float进行布局,兼容性好,一般不要用flex进行布局. 2.问起CSS选择器的分类,先说id选择器,类选择器,属性选择器,伪类选择器,伪元素选择器 ...

  6. 将 Python 打包的 exe 进行反编译

    Python 打包成 exe 之后,是否能从二进制文件中恢复出源代码?没有加密的话是可以的. 首先需要解包. 直接从 github 上下载就行:https://github.com/counterce ...

  7. 关于Kotlin中日志的使用方法

    1 引言 想必学过Java的人都知道一个@Slf4j使用得多么的舒服: @Slf4j public class TestController{ @GetMapping("/test" ...

  8. IDEA使用JFX的相关问题

    1 问题概述 首先是javafx找不到对应的类: 其次是 class com.sun.javafx.fxml.FXMLLoaderHelper (in unnamed module @0x50f362 ...

  9. Day14_76_反射与静态语句块

    反射与静态语句块 * 获取class对象与静态语句块的关系 package com.shige.Reflect; import java.nio.channels.ClosedSelectorExce ...

  10. 【pytest官方文档】解读fixtures - 3. fixtures调用别的fixtures、以及fixture的复用性

    pytest最大的优点之一就是它非常灵活. 它可以将复杂的测试需求简化为更简单和有组织的函数,然后这些函数可以根据自身的需求去依赖别的函数. fixtures可以调用别的fixtures正是灵活性的体 ...