内容简介:先说一下这里讲的是本地库,并不是私有库,如果想了解最近公司项目需要以组件化的架构来重构项目,就是各个模块需要解耦拆分开来,利用至于如何给自己的模块代码添加
先说一下这里讲的是本地库,并不是私有库,如果想了解 Cocoapods
公共库或者私有库的支持方法可以看我的另一篇文章: 【iOS 开发】创建 podspec 文件,给自己写的框架添加 CocoaPos 支持 。
最近公司项目需要以组件化的架构来重构项目,就是各个模块需要解耦拆分开来,利用 Cocoapods
的管理,主工程只需要将各个模块 pod install
引入即可,开始想要以私有库的方式集成,但是公司项目涉及到多个客户定制开发,定制分支比较多,如果用私有库方式必定要创建多个 Git
仓库分开管理,这样分支管理以及维护成本都大大提高,所以考虑采用本地库的方式将各个模块集成,好处是各个模块的库不需要打 tag
上传至私有库,可以在主工程直接管理各个模块的代码,下面就记录一下遇到的问题。
至于如何给自己的模块代码添加 Cocoapods
支持我这边就不说了,不会的看上面贴出来的另一篇文章即可。
假设
我的项目工程一共分为以下几个组件:
TestProject TestModule1 TestModule2
然后 测试主工程
需要依赖 测试组件1
,而 测试组件1
又需要依赖 测试组件2
,两个组件都是以本地库方式依赖,所以这里就涉及到 Cocoapods
本地库依赖本地库,因为是本地库并没有上传,所以在 podspec
中依赖时会出现找不到库的情况,下面就来说一下解决方法。
相互依赖的方法
测试组件2
由于 测试组件2
并不需要任何依赖,所以 podspec
如下:
Pod::Spec.new do |s| s.name = 'TestModule2' s.version = '1.0.0' s.summary = '测试组件2' s.homepage = 'xxx' s.license = { :type => 'MIT', :file => 'LICENSE' } s.author = { 'Jonzzs' => 'xxx' } s.source = { :git => '', :tag => s.version } s.platform = :ios s.ios.deployment_target = '9.0' s.swift_version = '4.2' s.source_files = 'TestModule2/*.swift' end
测试组件1
由于 测试组件1
需要依赖 测试组件2
,所以需要添加 s.dependency
依赖, podspec
如下:
Pod::Spec.new do |s| s.name = 'TestModule1' s.version = '1.0.0' s.summary = '测试组件1' s.homepage = 'xxx' s.license = { :type => 'MIT', :file => 'LICENSE' } s.author = { 'Jonzzs' => 'xxx' } s.source = { :git => '', :tag => s.version } s.platform = :ios s.ios.deployment_target = '9.0' s.swift_version = '4.2' s.source_files = 'TestModule1/*.swift' s.dependency 'TestModule2' # 这里需要依赖测试组件2 end
测试主工程
当测试主工程在 podfile
集成 测试组件1
和 测试组件2
时,一般来说,因为 TestModule1
已经在 podspec
中 s.dependency
依赖了 TestModule2
,所以直接 pod 'TestModule1'
应该就会自动把 TestModule2
也 pod
下来,但是因为两个组件都是本地库,所以 cocoapods
会找不到 TestModule2
这个本地库,这时候只要在 podfile
中将 TestModule2
也指明本地地址即可, podfile
如下:
platform :ios, '9.0' target 'TestProject' do use_frameworks! pod 'TestModule1', :path =>'../TestModule1/' pod 'TestModule2', :path =>'../TestModule2/' end
这里将 TestModule2
的地址也指明, pod 'TestModule1'
时就不会出现找不到依赖的情况。
将来的你,一定会感激现在拼命的自己,愿自己与读者的开发之路无限美好。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
- .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
- 浅析依赖倒转、控制反转、IoC 容器、依赖注入。
- Angular 4 依赖注入教程之五 FactoryProvider配置依赖对象
- Gradle构建SpringBoot程序依赖管理之依赖版本自动控制
- Maven学习笔记七【可选的依赖项和依赖项排除】
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入理解TensorFlow:架构设计与实现原理
彭靖田、林健、白小龙 / 人民邮电出版社 / 2018-5-1 / 79.00元
本书以TensorFlow 1.2为基础,从基本概念、内部实现和实践等方面深入剖析了TensorFlow。书中首先介绍了TensorFlow设计目标、基本架构、环境准备和基础概念,接着重点介绍了以数据流图为核心的机器学习编程框架的设计原则与核心实现,紧接着还将TensorFlow与深度学习相结合,从理论基础和程序实现这两个方面系统介绍了CNN、GAN和RNN等经典模型,然后深入剖析了TensorF......一起来看看 《深入理解TensorFlow:架构设计与实现原理》 这本书的介绍吧!