当前位置: 首页 > news >正文

iOS 创建一个私有的 CocoaPods 库

创建一个私有的 CocoaPods 库(pod)涉及几个步骤,包括设置私有的 Git 仓库、创建 Podspec 文件、发布到私有仓库等等。以下是详细步骤:

  1. 设置私有 Git 仓库
    首先,在 GitHub、GitLab 或 Bitbucket 上创建一个新的私有仓库,假设仓库名为 MyPrivatePod。

  2. 创建本地 Pod 库
    在本地创建一个新的 Pod 项目:

pod lib create MyPrivatePod

CocoaPods 会询问你一些问题,比如平台、语言、示例项目等。根据你的需求选择合适的选项。

  1. 配置 Podspec 文件
    CocoaPods 会在项目中生成一个 .podspec 文件,编辑这个文件来配置你的 Pod。

打开 MyPrivatePod.podspec 文件,并进行配置。例如:

Pod::Spec.new do |s|s.name             = 'MyPrivatePod's.version          = '0.1.0's.summary          = 'A short description of MyPrivatePod.'s.description      = <<-DESCA longer description of MyPrivatePod in markdown format.DESCs.homepage         = 'https://github.com/username/MyPrivatePod's.license          = { :type => 'MIT', :file => 'LICENSE' }s.author           = { 'Your Name' => 'you@example.com' }s.source           = { :git => 'https://github.com/username/MyPrivatePod.git', :tag => s.version.to_s }s.ios.deployment_target = '10.0's.source_files = 'MyPrivatePod/Classes/**/*'
end
  1. 初始化私有 Pod 仓库
    如果你还没有一个专门的私有 Pod 仓库,可以创建一个:
pod repo add MyPrivateRepo https://github.com/username/MyPrivatePodSpecs.git

这里 MyPrivateRepo 是你私有 Pod 仓库的名字,后面的 URL 是你在步骤 1 中创建的 Git 仓库的地址。

  1. 验证 podspec文件
    确保你当前的工作目录是在包含 .podspec 文件的 Pod 库根目录。
    在终端中运行以下命令来验证你的 Pod 库:
pod lib lint

–verbose:显示详细的输出信息。

pod lib lint --verbose

指定源仓库
如果依赖一些私有库可以添加Specs的git路径

pod lib lint --sources='https://github.com/CocoaPods/Specs.git,https://github.com/username/privaterepo.git'

–verbose 输出详情
–allow-warnings 允许警告,不然有警告就会终止
–use-libraries 允许使用静态库
–skip-import-validation 跳过验证
–no-clean 不清理打印
–swift-version=4.0 指定swift版本
这些命令对lib lint 或者 repo push都是作用的,有些莫名其妙问题每个命令都试一下,有时lib lint成功但是pod repo push 报错 ERROR | [iOS] xcodebuild: Returned an unsuccessful exit code 这一种要看一下warning尽量解决,或者其它命令试一下

多条指令一起

pod spec lint --verbose --use-libraries --allow-warnings --sources='https://git.XXXXXX/MySpecs.git'

–no-clean:在验证结束后不删除临时目录,这对调试很有帮助

pod lib lint --no-clean
  1. 发布 Pod
    要发布你的 Pod,你需要先将代码提交到你的 Git 仓库:
git add .
git commit -m "Initial commit"
git tag '0.1.0'
git push --tags

然后在终端运行以下命令发布你的 Pod 到私有仓库:
xx.podspec 要上传的podspec 注意xx.podspec所在的路径,我这里使用的是相对路径,你也可以使用绝对路径比如:/Users/xxx/Documents/xx.podspec

pod repo push MyPrivateRepo MyPrivatePod.podspec
  1. 使用私有 Pod
    在你的项目的 Podfile 中添加私有仓库源和 Pod:
source 'https://github.com/username/MyPrivatePodSpecs.git'
source 'https://github.com/CocoaPods/Specs.git'target 'MyApp' dopod 'MyPrivatePod', '~> 0.1.0'
end

然后运行 pod install:

pod install

有时候install不下来可以更新一下pod

pod repo update

这是使用pod管理,还有通过子工程管理方式,后面讲

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python3网络爬虫开发实战(2)爬虫基础库
  • Csrf复习(pikachu靶场和防御手段)
  • Linux——手动清理内存缓存
  • CSS、less、 Sass、
  • 前端canvas——赛贝尔曲线
  • Android笔试面试题AI答之Android系统与综合类(1)
  • 面试问题记录:
  • 技术实践—微前端技术应用
  • 秋招突击——7/24——知识补充——JVM类加载机制
  • iPhone 17系列取消17 Plus版本?新一代苹果手机迎来新变革
  • 支持向量机 及其分类案例详解(附Python 代码)
  • DNS域名解析服务器
  • Python高维度大型气象矩阵存储策略分享
  • FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 评论
  • 数字图像处理笔记(三) ---- 傅里叶变换的基本原理
  • [PHP内核探索]PHP中的哈希表
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • EOS是什么
  • Promise面试题2实现异步串行执行
  • Python - 闭包Closure
  • Rancher-k8s加速安装文档
  • React 快速上手 - 07 前端路由 react-router
  • sessionStorage和localStorage
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Vue 重置组件到初始状态
  • webpack+react项目初体验——记录我的webpack环境配置
  • webpack入门学习手记(二)
  • 程序员该如何有效的找工作?
  • 从零搭建Koa2 Server
  • 分享几个不错的工具
  • 和 || 运算
  • 基于HAProxy的高性能缓存服务器nuster
  • 盘点那些不知名却常用的 Git 操作
  • 前端
  • 06-01 点餐小程序前台界面搭建
  • gunicorn工作原理
  • ​数据结构之初始二叉树(3)
  • #Linux(make工具和makefile文件以及makefile语法)
  • #QT项目实战(天气预报)
  • #Spring-boot高级
  • (floyd+补集) poj 3275
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (六)DockerCompose安装与配置
  • (数据结构)顺序表的定义
  • (四)汇编语言——简单程序
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .md即markdown文件的基本常用编写语法
  • .net 4.0发布后不能正常显示图片问题
  • .net 调用php,php 调用.net com组件 --
  • .NET和.COM和.CN域名区别
  • .net专家(张羿专栏)