远程索引库

将远程索引库添关联到本地

pod repo 查看本地已关联仓库源
pod repo add 本地索引库名称 远程索引库仓库地址
pod repo update 索引库名称
pod repo remove 本地索引库名称

执行命令 添加远程索引库`KTPodSpecs`克隆到本地

远程库

新建框架工程KTUIKit

利用模板自动生成私有库工程

pod lib create 框架名称
pod lib create KTUIKit

生成的工程依赖关系

KTUIKit的示例工程的podfile配置spec的路径是相对于本地podfile的路径

编写PodSpec

依赖第三方库

framewirks:依赖系统的动态库 比如 UIKit
vendored_framework:依赖非系统的动态库 比如TencentOpenAPI.framework
libraries:依赖系统静态库 比如libstdc++.a
vendored_libraries:依赖非系统的静态库 比如新浪微博的libWeiboSDK.a
dependency:依赖pod库

上传框架到远程仓库

新建远程仓库

进入本地KTUIKit目录执行Git命令 与远程KTUIKit建立关联

git remote add origin https://github.com/coderketao/KTUIKit.git
git branch --set-upstream-to=origin/master master 本地分支远程分支建立track

建立关联后,本地KTUIKit push到远程仓库 注意:push过程记得一定将Pods和Podfile.lock文件忽略,否则导致pod install和pod repo push很慢

远程master分支添加tag 执行命令

git tag '0.1.0' 添加
git push --tags
git tag -d 0.1.0 删除
git push origin :0.1.0

私有库发布

将podspec文件到远程索引库 执行命令 验证`KTUIKit.podspec`是否合法

pod lib lint KTUIKit.podspec --allow-warnings --use-libraries 验证本地

执行命令 发布podspec到远程索引仓库

pod repo push KTPodSpecs KTUIKit.podspec --allow-warnings --use-libraries 

在构建组件时,如果该组件引用了其它库

s.dependendy 'SDWebImage'
s.dependendy 'AFNetWorking'

在验证、推送远程索引库加上pod的source

pod lib lint KTUIKit.podspec --sources='http://47.93.191.194:9002/hongketao/QXComponentSpecs.git,https://github.com/CocoaPods/Specs.git' --allow-warnings --use-libraries 

pod repo push KTPodSpecs KTUIKit.podspec --sources='http://47.93.191.194:9002/hongketao/QXComponentSpecs.git,https://github.com/CocoaPods/Specs.git' --allow-warnings --use-libraries 

私有库使用

新建项目,应用私有库

podspec的写法

~> 1.2.0 要求版本 [1.2.0, 2.0.0)
<= 1.2.0 版本小于等于1.2.0 超过后1.2.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']

iOS组件化开发-发布私有库的更多相关文章

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

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

  2. 组件化开发3-cocoaPods私有库制作

    一.创建索引项目ZHMCSSpec 1-1 在代码托管网站上建立索引项目ZHMCSSpec(以这个名称为例) 1-2 在本地创建ZHMCSSpec,并与远程索引建立联系 pod repo add ZH ...

  3. iOS - 组件化探究之私有库的创建

    http://www.cocoachina.com/ios/20180511/23359.html

  4. iOS组件化开发入门 —— 提交自己的私有库

    前言:本人也是初次接触组件化开发,感觉现有的资料太繁杂,就简单整理了一下,在此跟大家分享一些入手的经验,主要就是描述cocoapods的私有库封装和提交.组件化开发是个大的议题,涉及到架构思路.设计模 ...

  5. iOS 组件化开发之使用CocoaPod制作自己的远程私有库

    随着应用需求逐步迭代,应用的代码体积将会越来越大,为了更好的管理应用工程,我们开始借助CocoaPods版本管理工具对原有应用工程进行拆分.但是仅仅完成代码拆分还不足以解决业务之间的代码耦合,为了更好 ...

  6. iOS组件化开发-CocoaPods简介

    CocoaPods简介 任何一门开发语言到达一定阶段就会出现第三方的类库管理工具,比如Java的Maven.WEB的Webpack等.在iOS中类库的管理工具-CocoaPods. 利用CocoaPo ...

  7. iOS组件化开发· 什么是组件化

    越来越多公司,开始了组件化,你还要等到什么时候...... 说到开发模式,我们最熟知的开发模式 MVC 或者最近比较热门的MVVM.但是我今天说的组件化的开发,其实MVC不是一类的.它其实是····· ...

  8. iOS组件化开发一本地环境配置(一)

    首先我们要使用pod支持组件化开发 解决CocoaPods慢的方案(gem和pod repo换源) gem换源 $ gem sources --remove https://rubygems.org/ ...

  9. iOS组件化开发一远端私有库建立(二)

    公共库业务,基础层划分! 一.构建私有云,本文推荐为码云 1.构建名称为LuckTimeSpec,选择私有建立: 2.Copy地址的https 链接: 二.打开终端 输入: cd /Users/zha ...

随机推荐

  1. 9、TestNG介绍与安装

    介绍 TestNG是一个受JUnit和NUnit启发的测试框架,但引入了一些新功能,使其更加强大和易于使用,例如: 注释. 在任意大的线程池中运行你的测试,这些线程池有各种可用的策略(所有方法在他们自 ...

  2. UVA 1525 Falling Leaves

    题目链接:https://vjudge.net/problem/UVA-1525 题目链接:https://vjudge.net/problem/POJ-1577 题目大意 略. 分析 建树,然后先序 ...

  3. PAT_A1117#Eddington Number

    Source: PAT A1117 Eddington Number (25 分) Description: British astronomer Eddington liked to ride a ...

  4. 剑指offer——70n个骰子的点数

    题目: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s.输入n,打印出s的所有可能的值出现的概率. 题解: 使用两个数组存每次投的点数 void theProbability(const int ...

  5. 前端(十六)—— JavaScript盒子模型、JS动画、DOM、BOM

    JS盒子模型.JS动画.DOM.BOM 一.JS盒模型 1.width | height parseInt(getComputedStyle(ele, null).getPropertyValue(' ...

  6. Java缓冲区读写

    缓冲区读 有两种方法从缓冲区读取数据: 绝对位置 相对位置 使用四个版本重载的get()方法用于从缓冲区读取数据. get(int index)返回给定索引处的数据. get()从缓冲区中的当前位置返 ...

  7. 快速列出大纲.提纲.归纳知识点 思维导图工具Xmind

    博客搬迁,给您带来的不便敬请谅解! http://www.suanliutudousi.com/2017/10/23/%E5%BF%AB%E9%80%9F%E5%88%97%E5%87%BA%E5%A ...

  8. Aggregate report 聚合报告

  9. 上线出现[x86_64, i386]

    echo "Target architectures: $ARCHS" APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}&quo ...

  10. Linux 父进程发送信号杀死子进程

    #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <signal. ...