iOS组件化开发-发布私有库
远程索引库

将远程索引库添关联到本地
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组件化开发-发布私有库的更多相关文章
- iOS组件化开发一pod库包含MRC的文件处理(五)
在做项目的过程中,建立了一个私有pod库,在这个库中存在mrc类文件这个时候如果在使用了arc的工程中引用这个pod的工程中手动设置当然也可以就是费时费力.现在我们来看看如何在私有库配置文件里配置自动 ...
- 组件化开发3-cocoaPods私有库制作
一.创建索引项目ZHMCSSpec 1-1 在代码托管网站上建立索引项目ZHMCSSpec(以这个名称为例) 1-2 在本地创建ZHMCSSpec,并与远程索引建立联系 pod repo add ZH ...
- iOS - 组件化探究之私有库的创建
http://www.cocoachina.com/ios/20180511/23359.html
- iOS组件化开发入门 —— 提交自己的私有库
前言:本人也是初次接触组件化开发,感觉现有的资料太繁杂,就简单整理了一下,在此跟大家分享一些入手的经验,主要就是描述cocoapods的私有库封装和提交.组件化开发是个大的议题,涉及到架构思路.设计模 ...
- iOS 组件化开发之使用CocoaPod制作自己的远程私有库
随着应用需求逐步迭代,应用的代码体积将会越来越大,为了更好的管理应用工程,我们开始借助CocoaPods版本管理工具对原有应用工程进行拆分.但是仅仅完成代码拆分还不足以解决业务之间的代码耦合,为了更好 ...
- iOS组件化开发-CocoaPods简介
CocoaPods简介 任何一门开发语言到达一定阶段就会出现第三方的类库管理工具,比如Java的Maven.WEB的Webpack等.在iOS中类库的管理工具-CocoaPods. 利用CocoaPo ...
- iOS组件化开发· 什么是组件化
越来越多公司,开始了组件化,你还要等到什么时候...... 说到开发模式,我们最熟知的开发模式 MVC 或者最近比较热门的MVVM.但是我今天说的组件化的开发,其实MVC不是一类的.它其实是····· ...
- iOS组件化开发一本地环境配置(一)
首先我们要使用pod支持组件化开发 解决CocoaPods慢的方案(gem和pod repo换源) gem换源 $ gem sources --remove https://rubygems.org/ ...
- iOS组件化开发一远端私有库建立(二)
公共库业务,基础层划分! 一.构建私有云,本文推荐为码云 1.构建名称为LuckTimeSpec,选择私有建立: 2.Copy地址的https 链接: 二.打开终端 输入: cd /Users/zha ...
随机推荐
- 牛客 判断t1树中是否含有与t2树拓扑结构完全相同的子树
题目链接:https://www.nowcoder.com/practice/5a41ce17e8194e1688aa83a73137f7ee?tpId=101&tqId=33239& ...
- node 创建静态web服务器(下)(处理异步获取数据的两种方式)
接上一章. 上一章我们说创建的静态web服务器只能识别html,css,js文件,功能较为单一,且图片格式为text/html,这是不合理的. 本章,我们将解决该问题. 这里,我们先准备好一个json ...
- 【React-Native】---Android环境配置
一.前言 本文主要内容是在Window系统下配置Android APP的开发环境,要配置RN的Android开发环境需要3个依赖 1.JDK(版本必须是 1.8) 2.Node(版本必须高于8.3) ...
- Python脚本轻松实现批量图片重命名
************************************************************************** 摘要:网上爬取的图片名字很混乱,格式也比较多,需要 ...
- 10 个轻松学会 CSS3 的优秀在线资源
本文包揽 CSS 的所有关键点,并且引入了最新的 CSS3 版本.这个先进的技术提供超级多的新标签和属性,使得 Web 设计构建创新更简单,帮助开发者创建具有新趋势,带有漂亮布局的 Web 页面.随着 ...
- (数据科学学习手札61)xpath进阶用法
一.简介 xpath作为对网页.对xml文件进行定位的工具,速度快,语法简洁明了,在网络爬虫解析内容的过程中起到很大的作用,除了xpath的基础用法之外(可参考我之前写的(数据科学学习手札50)基于P ...
- 一键抓取Android的Locat Log
很多小伙伴在做App测试时,一遇到Cash,开发同学最常说的一句话,就是抓下Locat日志,很多小伙伴一听到这个抓取日志就会觉得有点烦. 主要有2点: 1.是这个bug可能不好 ...
- find out the installed and runing tomcat version in Linux
To find out the Tomcat version, find this file – version.sh for *nix or version.bat for Windows. Thi ...
- Xcode使用篇-重新安装Xcode
卸载Xcode sudo rm -rf /Applications/Xcode.app sudo rm -rf /Library/Preferences/com.apple.dt.Xcode.plis ...
- python pathlib模块详解
python pathlib模块详解