远程索引库

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

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. 剑指offer——58数组中数值和下标相等的元素

    题目三: 数组中数值和下标相等的元素. 假设一个单调递增的数组里的每个元素都是整数并且是唯一的.请编程实现一个函数,找出数组中任意一个数值等于其下标的元素.例如,在数组{-3,-1,1,3,5}中,数 ...

  2. pandas读取文件出现路径不存在的问题

    我写的路径是绝对路径,其他的文件读写完全是没有问题的但是pandas就是不行,于是我改写为全路径:'E:/Python/KNN/iris.csv' 即可解决

  3. ajax 回传参数

    JSONObject json = new JSONObject(); json.put("msg", msg); json.put("success", co ...

  4. zabbix--源码安装部署zabbix3.2

    zabbix运行在lamp环境或者lnmp环境都是可以的,如果是新系统推荐使用lamp或者lnmp一键安装包, 或者可以向下面这种方式: PHP安装 源码安装 rpm -ivh php55w-comm ...

  5. 教你如何有效防止DDos攻击?

    DDos又称分布式拒绝服务,DDos是利用大量合理的请求造成资源过载,导致服务不可用.就比如一个餐馆总共有100个座位,突然有一天某个商家恶意竞争,雇佣了200个人来到这个餐馆坐着不吃不喝,门口还排着 ...

  6. 《代码大全2》读书笔记 Week4

    <代码大全2>第8章:防御式编程 防御式编程的主要思想是子程序应该不因为非法的输入值被破坏,就好比开车时的防御式驾驶:你无法预估其他司机将会做什么,但你要采取措施保证当他人做出危险动作时自 ...

  7. 微信小程序のwxs

    WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构. wxs可以说就是为了满足能在页面中使用js存在的,在wxml页面中,只能在插值{{ }}中写简单的j ...

  8. mongo 分片集群的搭建

    MongoDB版本当前使用的MongoDB版本为4.2.0,下载地址.https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2. ...

  9. ConcurrenHashMap介绍1.8 中为什么要用红黑树

    java8不是用红黑树来管理hashmap,而是在hash值相同的情况下(且重复数量大于8),用红黑树来管理数据. 红黑树相当于排序数据.可以自动的使用二分法进行定位.性能较高. 在Concurren ...

  10. shell脚本中关于日期的操作

    一.计算指定日期的前一天的日期 date -d "yesterday 20150401 " +%Y%m%d 二.如果获取当前日期的前一天        date -d " ...