创建Cocoapods私有库托管工程的模块进行依赖
时间:2022-06-09
本文章向大家介绍创建Cocoapods私有库托管工程的模块进行依赖,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
创建Cocoapods私有库托管工程的模块进行依赖
业务需求: 明年可能做一个新的项目但是大部分的功能模块是一样的 如果使用不同的Target可能代码里面不同的判断 这是十分痛苦的 有没有好的办法集成模块 并且十分容易的修改扩展 我想到了Cocoapod进行依赖 但是之前全部托管到GITHUB上面 属于共有的库 今天就百度了一下资料 做了一下私有库 分享一下经验
我们按照一个软件MAMP
下载免费版本就可以了,我们只是当做PHP服务器就好了。
我们前往下面的目录
/Applications/MAMP/htdocs
新建一个文件夹
GBRepoGits
存放我们工程的不同模块
比如我们先新建一个存放ENUM的模块
GBDefineENUM
我们考虑可能有不同的版本 因为可能需要自定义并且 可能其他模块的改动 我们新增1.0版本
1.0
我们在1.0的目录新增文件夹 存放我们的文件
DefineEnums
我们现在的目录就是
/Applications/MAMP/htdocs/GBRepoGits/GBDefineENUM/1.0/DefineEnums
在本目录的终端执行下面的命令
pod spec create GBDefineENUM1.0
配置GBDefineENUM1.0.podspec文件
Pod::Spec.new do |s|
s.name = "GBDefineENUM1.0"
s.version = "1.0"
s.summary = "测试"
s.homepage = "http://localhost:8989/GBRepoGits/GBDefineENUM/1.0/"
s.license = { :type => 'MIT', :text => <<-LICENSE
Copyright 2012
Permission is granted to...
LICENSE
}
s.author = { "15038777234" => "15038777234@163.com" }
s.platform = :ios, "8.0"
s.source = { :http => 'http://localhost:8989/GBRepoGits/GBDefineENUM/1.0.zip' }
s.source_files = "1.0/DefineEnums/**/*.{h,m}"
s.requires_arc = true
end
其他的配置和创建共有的是一样的 只不过我们使用的是zip的文件包 zip就是我们1.0目录的打包
我们在终端执行
pod spec lint --verbose
我们在工程podfile添加下面代码执行正常的pod install 和 pod update就可以了
pod 'GBDefineENUM1.0', :podspec => '/Applications/MAMP/htdocs/GBRepoGits/GBDefineENUM/1.0/GBDefineENUM1.0.podspec'
注意事项
之前podspec执行的路径是我本地PHP的spec路径提示我编码不正确 我觉得可能就是PHP自动帮我展示转码了
就换成本地的文件路径是可以的
想说的话
对于我们的项目想完全模块脱离 我觉得很大的工作量 我觉得应该可以 我这几天研究一下
- SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题(六)
- 权限管理模块中动态加载Vue组件
- axios请求封装和异常统一处理
- SpringSecurity中密码加盐与SpringBoot中异常统一处理
- SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题(二)
- SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题(一)
- Java操作MongoDB
- 初识MongoDB分片
- Linux上安装Redis
- SpringBoot+WebSocket实现在线聊天(二)
- SpringBoot中使用Freemarker构建邮件模板
- SpringBoot中发送QQ邮件
- SpringBoot中使用POI,快速实现Excel导入导出
- 代理技术 | 重磅,代理服务器背后的故事(正向、反向代理)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Swift Module Interfaces
- Swift 的 MemoryLayout 是如何工作的(1)
- Redis - NoSQL 和 Jedis 入门
- cargo manifest规则使用介绍
- 小程序bindinput和bindblur赋值延迟问题解决
- 小程序监听屏幕滑动事件
- 使用GithubActions发布Vue网站到GithubPage
- 3.QOpenGLWidget-通过着色器来渲染渐变三角形
- 特斯拉大半夜「见鬼」!空无一人的路上,它却看见「幽灵」秒刹车
- .NET 异步详解
- 他被导师半夜敲门叫醒:你得诺贝尔奖了!还曾为5G频谱拍卖设计方案,担任谷歌IPO咨询顾问
- C#实现——十大排序算法之选择排序
- CSS高级技巧 CSS用户界面样式
- 从零开始针对 .NET 应用的 DevOps 运营实践 - 运行环境搭建
- Sentinel断路器与熔断降级【源码笔记】