Cocoapods 创建第三方框架

一、上传项目到github

将框架中的主要文件放入到一个指定文件夹中,比如叫Classes或者Lib都可以

目录结构

  • 打开终端,cd到框架目录
cd /Users/lxf/xxxx/LXFPhotoHelper 
  • 初始化仓库
git init
  • 将当前目录添加到缓存区
git add .
  • 提交到本地仓库
git commit -m '描述'
  • 添加远程仓库地址
git remote add origin https://github.com/LinXunFeng/xxx.git
  • 提交到远程仓库
git push origin master

如果出现如下提示

fatal: unable to access 'https://github.com/xxx/xxx.git/': The requested URL returned error: 403

原因是本地缓存了用户名和密码 编辑.git目录下的config文件

vi .git/config

找到url那一行,在github.com前加上用户名后保存,再重新执行推送操作

url = https://LinXunFeng@github.com/LinXunFeng/xxx.git
  • 打标签
// 具体说明可以执行`git tag --help`后查看
// git tag -a '版本号' -m 'tag描述'
// 注意一下,这里打的标签只是在本地
git tag '0.0.1'
  • 推着所有标签至远程仓库
// 只推着指定版本
// git push origin 版本号 
git push --tags

二、创建并修改podspec文件

  • 创建Spec文件
// 名称一般与工程名称保持一致
pod spec create 框架名称

podspec文件

  • 修改Spec文件
  s.name         = "LXFPhotoHelper(仓库名称)"
  s.version      = "0.0.1(版本号,这里跟下面s.source中的tag有关)"
  s.summary      = "对你自己仓库的简单描述,不要写太多字"
  s.description  = "这个是详细描述,这里需要注意的是,这里文字的长度需要比  
  s.summary的要长,不然会出现警告"
  s.homepage     = "仓库首页地址,如https://github.com/LinXunFeng/LXFPhotoHelper"
  s.license      = "MIT"
  s.author       = { "LinXunFeng" => "598600855@qq.com" }
  # source存放的地址是代码的真正地址
  s.source       = { :git => "仓库对应的git地址,如https://github.com/LinXunFeng/LXFPhotoHelper.git", :tag => "#{s.version}" }
  # pod install时真正下载下来的文件路径,这里指定的是你仓库下的Classes目录中的所有.h和.m文件(填写的是相对地址)
  # ** 通配目录
  s.source_files  = "Classes", "Classes/**/*.{h,m}"

  # s.library = "sqlite3" # 框架依赖系统的sqlite3

也可以上官网的手册【Podspec Syntax Reference】上查看

这里需要我们注意的是s.version= "0.0.1",这里的版本号要与刚刚打的tag一致

三、注册trunk

// --verbose 打印详情信息
// pod trunk register 邮箱 '你的名称' --verbose
pod trunk register 598600855@qq.com 'LinXunFeng' --verbose

然后去验证邮箱

验证成功

验证成功后会提示我们回到终端,并敲入pod trunk push 名称.podspec

四、上传Spec

执行pod trunk push后会有一个审核的过程,如果提示没有通过,有ERROR就修改好后重新push,如果只是WARN可以选择在pod trunk push后面加上--allow-warnings来忽略它们

pod trunk push LXFPhotoHelper.podspec --allow-warnings

如果出现如下信息,则说明你的框架名字已被占用,得重新改个名字~ 所以,在创建你自己的cocoapods仓库时最好是到cocoapods.org上先查一下有没有相同名字的

[!] You (xxx@qq.com) are not allowed to push new versions for this pod. The owners of this pod are yyy@qq.com.

上传成功后会自动帮我们更新本地仓库,如果无法搜索到自己的框架,可以先删掉本地的索引文件后再搜索一次

rm ~/Library/Caches/CocoaPods/search_index.json

当使用pod search 命令可以搜索自己的框架时, 那么就意味着审核通过了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏农夫安全

Nfs不安全的配置漏洞

0x00 前言 NFS 代表网络文件系统,是一种可以在 Unix 系统中找到的协议,允许网络上的用户以类似于本地存储的方式访问共享文件夹。现代 NFS 实现包...

2925
来自专栏Albert陈凯

Hadoop数据分析平台实战——020Hadoop Shell命令(初学跳过)离线数据分析平台实战——020Hadoop Shell命令(可跳过)

离线数据分析平台实战——020Hadoop Shell命令(可跳过) Hadoop Shell命令简单描述 Hadoop的Shell命令主要分为两类: 一类是启...

3145
来自专栏坚毅的PHP

my linux FAQ

用命令查询系统是32位还是64位 getconf LONG_BIT or getconf WORD_BIT 例如: [root@sy02 /]# getconf...

2873
来自专栏技术博文

mkdir dxs

chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管...

2608
来自专栏landv

robocopy的用法,数据库局域网备份

1865
来自专栏后端云

挂载云硬盘

已有云主机id 27b31829-326f-4029-a537-bb327303a32c

1025
来自专栏mwangblog

Linux查找文件 find

964
来自专栏从零学习云计算

openshift/origin学习记录(3)——添加Registry

学习资料来源于官方英文文档与《开源容器云OpenShift》一书,因为刚开始学习,不确定博客的正确性,以下内容仅供参考。 本部分是在openshift/orig...

2140
来自专栏技术博文

svn 文件状态标记含义

svn status打印五列字符,紧跟一些空格,接着是文件或者目录名。第一列告诉一个文件的状态或它的内容,返回代码解释如下: A item 文件、目录或是符号...

3504
来自专栏前端真相

手把手教你安装Redhat 7

1876

扫码关注云+社区