使用总结:

一. 创建索引库

1.创建远程索引库

  在远程创建一个索引库(码云),私有的

2.创建本地索引库,并与远程索引库关联

pod repo add <本地索引库名称>  <远程索引库地址.git>

//查看是否创建成功

  pod repo

二.创建远程代码库

  1.在远程创建一个代码库(码云),私有的

  2.创建<模板测试工程>(也就是组件)

  pod lib create <组件名>     //会生成spec文件 和 测试工程

  //然后,将<组件>拷贝到 Classes文件夹中即可,然后执行, pod install      此时, 打开测试工程,可以进行一些修改操作

   2.1 也可以直接创建spec 文件 ,然后配置

  //pod spec create + 私有库名字    //直接生成spec 文件

  

  3.修改 spec 文件

Pod::Spec.new do |s|
 
#私有库名称
  s.name         = "xsspec"
#版本, 也是tag
  s.version      = "0.0.1"
#摘要
  s.summary      = "xsbase"
#描述,需比摘要更详细
  s.description  = 'xsbase可展开收缩'
#项目主页地址(无.git后缀)
  s.homepage     = "https://gitee.com/DaXueShan/xsbase"
#开源许可类型
  s.license      = "MIT"
 #s.license      = { :type => "MIT", :file => "FILE_LICENSE" }
#作者
  s.author       = { "xueshan1" => "xueshan1@staff.sina.com.cn" }
#最低支持版本
  s.platform     = :ios, "9.0"
#仓库路径(有.git后缀) 项目需要打tag
  s.source       = { :git => "https://gitee.com/DaXueShan/xsbase.git", :tag => "#{s.version}" }
#资源文件路径(相对于.git目录开始的, **表示匹配所有子目录, *表示匹配所有文件, 如SFString1/*.{h,m})
s.source_files  = "xsbase/*"
 
#依赖的库,要填写s.dependency
#s.dependency "JSONKit", "~> 1.4"
#s.dependency "Masonry", "~> 1.0.0"
 
end
 

  4.将<模板测试工程> 提交到 1 创建的远程代码库, 通过 git 操作

  git push

  //打标签

  git tag 0.1.0 (与. spec 中的 s.version 相同)

  git push --tags

 

三.提交 podspecspec 到本地索引库 (它会自动同步到远程)

  验证spec:

  pod lib lint --verbose --use-libraries --allow-warnings

         --allow-warnings (验证时允许有警告)

         --verbose (显示检查编译的详细信息)

        --use-libraries (podspec文件中依赖了静态库造成的验证不通过,可加上这个参数)

  提交spec :

   pod repo push <XXspec本地索引库名称>   <XXTools.podspec  spec 文件名>  --verbose --allow-warnings
 

  验证过程出现的 Error

- ERROR | [iOS] unknown: Encountered an unknown error (Could not find a `ios` simulator ...

解决方案:

 升级cocoapods即可解决 sudo gem install cocoapods

 

四.集成到项目中

在 podfile 文件中需要制定组件的源

source '第一步创建的远程索引库的地址.git' . 注意是spec库的地址,而不是项目仓库的地址

source 'https://gitee.com/DaXueShan/XSRemoteSpec.git' 

platform :ios,'10.0'

target 'MainProject' do

pod 'XSBaseZujian','0.1.0'

end

参考:

  http://www.cnblogs.com/hs-funky/p/6780203.html

http://www.jianshu.com/p/4b63dfbd8be7

http://www.code4app.com/blog-865196-47193.html .  上传到公共github仓库

https://blog.csdn.net/donnydn/article/details/79823566 推荐

 


远程私有库的创建 pod 组件化的更多相关文章

  1. iOS组件化开发一远程私有库的升级(三)

    一.远程私有库的升级 1. 把新增的类 拖入到 classes 文件夹中 : 2. 修改 pod.spec 文件的 s.verson = ‘0.2.0': 二.更新远程仓库 1.cd 到本地仓库的位置 ...

  2. iOS开发 - CocoaPods远程私有库从0到1

    1. 创建主工程  路径:/Users/Funky/Desktop/CocoaPodRemoteLib/MyMainProject/MyMainProject.xcodeproj 2. 在码云(htt ...

  3. 搭建CocoaPods远程私有库

    1.创建自己的远程私有索引库,用来存放私有框架的.podspec文件,并将其添加到本地索引 我用的仓库是码云(https://gitee.com),用自己的账号新建一个私有仓库,我命名为Private ...

  4. 基于 svn 服务器及 cocoapods-repo-svn 插件进行组件化私有库的创建

    一.准备 组件化 随着业务需求的增长,在单工程 MVC 模式下,app 代码逐渐变得庞大,面对的高耦合的代码和复杂的功能模块,我们或许就需要进行重构了,以组件化的形式,将需要的组件以 pod 私有库的 ...

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

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

  6. 工具第二天 cocoaPods 私有库的创建

    之前介绍了cocoaPods的安装与使用,今天简单谈一下 自己的私有库运用cocoaPods依赖. cd到需要做库的工程目录下 创建一个podspec文件 创建:pod spec create 名称 ...

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

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

  8. 本地私有库的实现 pod

    以pods的形式,引入本地相关文件 补充: pod repo 查看本地 pod 目录信息 一, 生成本地库 的描述文件.spec //1.进入的 本地库的 目录 cd  'xxx' //2.初始化本地 ...

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

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

随机推荐

  1. 今天出现编码出现了No suitable driver found for jdbc

    出现这样的情况,一般有四种原因: 一:连接URL格式出现了问题(Connection conn=DriverManager.getConnection("jdbc:mysql://local ...

  2. IDEA创建的Maven项目中 解决编写pom.xml没有提示

    问题如下 没有提示信息 解决方案 把Repositories中的配置更新成本地仓库 问题解决

  3. Solr搜索的排序打分规则探讨

    使用Solr搭建搜索引擎很容易,但是如何制定合理的打分规则(boost)做排序却是一个很头痛的事情.Solr本身的排序打分规则是继承自Lucene的文本相关度的打分即boost,这一套算法对于通用的提 ...

  4. Codeforces 1142D(dp)

    题目传送 先给出设计dp的结论: dp[i][j]:以第i个位置.以rankj的数拓展出去的方案数.意会一下,我实在想不好语言-- 其中所谓rankj=真·rank%11 找到拓展的规律,转移也就顺理 ...

  5. array_unique() 函数移除数组中的重复的值

    array_unique() 函数移除数组中的重复的值,并返回结果数组. 当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除. 返回的数组中键名不变.

  6. Maven 导包后,在Maven Dependencies 里面却没有相应的包

    1 问题描述 在1处显示成功,但是在2处却没有相应的包 2 问题原因 查看pom.xml的源码,看你的依赖是否和我的方框中标签是一样的,有的会多出一个  xxxupdate 的标签(我这里给出的是正确 ...

  7. iOS 判断设备是否越狱了

    #import "PrisonBreakCheck.h" @implementation PrisonBreakCheck /** * 判断iPhone是否越狱了 */ +(BOO ...

  8. JavaPersistenceWithHibernate第二版笔记-第六章-Mapping inheritance-005Table per subclass with joins(@Inheritance(strategy = InheritanceType.JOINED)、@PrimaryKeyJoinColumn、)

    一.结构 The fourth option is to represent inheritance relationships as SQL foreign key associations. Ev ...

  9. rvm 安装后的补充工作:source $HOME/.profile

    rvm安装后会在 $HOME/.bash_profile 文件追加一行代码: [[ -s "$HOME/.rvm/scripts/rvm" ]] && source ...

  10. Luogu 3586 [POI2015]LOG

    考虑离散化后开权值线段树. 设序列中不小于$s$的数有$cnt$个,小于$s$的数的和为$sum$. 那么操作Z能成功的充要条件是$sum \geq (c - cnt) * s$. 如果序列中不小于$ ...