远程索引库

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

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. [资料]C#操作SQL Server数据库

    1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调 ...

  2. 37-Ubuntu-用户管理-02-查看用户信息

    查看用户信息 序号 命令 作用 01 id 用户名 查看用户UID和GID信息 02 cat -n /etc/passwd 查看用户详细信息,参数-n显示行号 03 cat -n /etc/group ...

  3. Match & Catch CodeForces - 427D 后缀自动机水题

    题意: 给出两个字符串a,b,求一个字符串,这个字符串是a和b的子串, 且只在a,b中出现一次,要求输出这个字符串的最小长度. 题解: 将a串放入后缀自动机中,然后记录一下每个节点对应的子串出现的次数 ...

  4. android应用的资源

    应用资源可以分为两大类: 1.无法直接访问的原生资源,保存在asset目录下. 2.可以通过R资源清单类访问的资源,保存在res目录下. 资源的类型以及存储方式: android要求在res目录下用不 ...

  5. Pregel Worker

  6. JVM配置参数理解,Cannot load this JVM TI agent twice

    基本参数 -Xms128m JVM初始分配的堆内存 -Xmx512m JVM最大允许分配的堆内存,按需分配 -XX:PermSize=64M JVM初始分配的非堆内存 -XX:MaxPermSize= ...

  7. [转]在WPF中自定义控件 UserControl

    在这里我们将将打造一个UserControl(用户控件)来逐步讲解如何在WPF中自定义控件,并将WPF的一些新特性引入到自定义控件中来.我们制作了一个带语音报时功能的钟表控件, 效果如下: 在VS中右 ...

  8. leetcood学习笔记-167-两数之和 II - 输入有序数组

    题目描述: 第一次提交: class Solution(object): def twoSum(self, numbers, target): """ :type num ...

  9. leetcood学习笔记-169-求众数

    题目描述: 方法一:排序输出中位数 class Solution(object): def majorityElement(self, nums): """ :type ...

  10. Jmeter-【JSON Extractor】-响应结果中一级key取值

    一.请求返回样式 二.取code值 三.查看结果