本文以自己在公司做的一个手势密码私有库GesturePasswordKit为例说明。

1、在gitlab(或者github,我这里使用的例子是在gitlab上)上创建git仓库 (确保授权正确,避免后续出现权限问题)

2、使用sourcetree 把空仓库clone到本地

3、将准备好的代码拷贝进去(只留下需要的文件,建议使用一级目录存储), 需要外部调用的方法,要注意使用权限控制符号public /open

4、创建.podspec 文件 

       4.1 复制已有的 podspec 文件然后修改对应的参数

4.2 执行命令行创建  pod spec create 【私有库名称】

书写正确的参数配置,如下图:

Pod::Spec.new do |s|

  s.name         = "GesturePasswordKit"
s.version = "0.0.8"
s.summary = "手势密码"
s.homepage = "http://888888/GesturePasswordKit"
s.license = { :type => "MIT", :file => "LICENSE" }
s.description = <<-DESC
GesturePasswordKit 是一个用于实现手势密码管理的工具
DESC
s.author = { "wangzhitao" => "wangzhitao@888888.com" }
s.platform = :ios, "8.0"
s.ios.deployment_target = "8.0"
s.source = { :git => "git@git.888888.com:iOS/GesturePasswordKit.git", :tag => 'v'+s.version.to_s}
s.source_files = 'GesturePasswordKit/*.{png,h,m,swift}' // 多级目录使用:s.source_files = 'GesturePasswordKit/**/*'
s.resources = "GesturePasswordKit/Resource.bundle"
s.requires_arc = true
s.dependency "Kingfisher"
s.pod_target_xcconfig = { 'SWIFT_VERSION' => '4.0' } // 指定swift版本,一般不需要写 end

5、验证podspec

      pod lib lint --allow-warnings

此时验证时,gitLab上需要有podspec中的版本tag

6、把代码提交到git服务器

git init

git add .

git commit -m "first commit"

git push origin master

可随时使用git status 检查文件状态

7、打tag (命令行)

git tag v0.0.1

git push --tags

git push origin master

删除tag

git tag -d v0.0.1

git push origin :refs/tags/v0.0.1

git push origin master

8、添加你的 Podspec 到你的 repo

      pod repo add  GesturePasswordKitSpecs git@git.tuandai888.com:iOS/GesturePasswordKit.git

在此之前先打tag

pod repo push GesturePasswordKitSpecs GesturePasswordKit.podspec --allow-warnings

// 检查是否成功

cd ~/.cocoapods

open .

9、pod search GesturePasswordKit

#私有库版本升级遇到的问题 swift3.0->4.0

1. 更新时遇到此错误,处理方法。 

[!] The spec did not pass validation, due to 1 error.

[!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run:

`echo "2.3" > .swift-version`.

遇到上面的这种情况,直接使用下面的这条命令就可以解决问题了。

echo "4.0" > .swift-version

加入这句话后多了.swift-version文件

2.主工程podfile文件最后添加以下代码,这段代码的作用是,不同的库,指定不同的版本,如有些第三方库用3.2版本,有些升级为4.0版本,可以自定在

swift_32  swift4
中添加,数组可为空,如swift_3.2 = ['RxSwift', 'RxCocoa']  swift4 = [] 说明除了 ['RxSwift', 'RxCocoa']其余库都升级为4.0版本

添加下面这段代码的原因是,上面 echo "4.0" > .swift-version 执行后,导入私有库后pod install 会让主工程的pod 一并升级到4.0,导致所有第三方都变成了4.0,编译失败。
swift_32 = ['RxSwift', 'RxCocoa']

swift4 = ['PalaverKit']

post_install do |installer|

  installer.pods_project.targets.each do |target|

    swift_version = nil

    if swift_32.include?(target.name)

      swift_version = '3.2'

    end

    if swift4.include?(target.name)

      swift_version = '4.0'

    end

    if swift_version

      target.build_configurations.each do |config|

        config.build_settings['SWIFT_VERSION'] = swift_version

      end

    end

  end

end

公有库的创建

前面的步骤和私有pod一样,在代码commit并push之后:

1、注册trunk

$ pod trunk register 邮箱 '用户名' --description=‘性能监测库’ 

(1)邮箱为github上的登录邮箱、用户名为github上的用户名。

(2)接收发送到邮箱的链接,点击进入后注册成功。

(3)查看注册的个人信息 : ‘$ pod trunk me ’

注意podspec里面的用户名和邮箱一定要和这里的对应,否则会后续验证会报错!

2、验证上传到github上的公有仓库是否有效。

$ pod spec lint cocoapodsName.podspec   --allow-warnings

3、将公有仓库推送到CocoaPods

$ pod trunk push cocoapodsName.podspec  --allow-warnings

创建Cocoapods私有库的更多相关文章

  1. 从零开始创建CocoaPods私有库

    为什么要创建CocoaPods私有库? 避免重复的造轮子 节约时间,方便管理自己的代码 精益求精 创建CocoaPods私有库 1.创建私有仓库工程 执行命令pod lib create SmartB ...

  2. iOS:最详细的创建CocoaPods私有库教程

    一.感慨 说实话,创建这个CocoaPods私有库,我愣是搞了两个星期,创建的过程中,自己的感情波动是这样的:激情四射---->有点困惑----->极度困惑----->有点失望--- ...

  3. iOS 创建本地私有库 保存功能代码

    创建本地私有库 >>> cd /Users/cxx/Desktop/Mange_JJH/Lib >>> pod lib create TZTools >> ...

  4. iOS之创建CocoaPods公有库教程

    简介 在开发过程中,经常会使用到第三框架,我们通过一个pod install命令,很方便的就将第三方框架加到我们自己的项目中. 如果我们也想将自己写的组件或库开源出去,让别人也可以通过pod inst ...

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

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

  6. 【原+转】创建CocoaPods私有podspec

    在我的上一篇文章<iOS 手把手教你发布代码到CocoaPods>中着重介绍如何将自己的代码索引添加到公开的CocoaPods中,当你需要主动地向大众开源你的代码时需要那么做.但在现实中我 ...

  7. macOS sierra 10.12 Cocoapods 私有库

    使用Cocoapods创建私有podspec 见文章:http://www.cocoachina.com/ios/20150228/11206.html 或http://blog.wtlucky.co ...

  8. 创建Pods私有库

    Pods私有库创建步骤 创建私有 Spec Repo 创建Pod项目工程文件 创建podspec文件 本地测试podsspec文件 向Spec Repo提交podspec Pod库使用 更新维护pos ...

  9. 通过构建Cocoapods私有库进行组件化开发探索

    专题一 一.创建私有索引库 选Github或者码云都可以,本例以Github为例.创建私有索引库用来作为自己组件库的索引: 二.本地添加私有索引库 添加:pod repo add 索引库名称 索引库地 ...

随机推荐

  1. \_\_setitem\_\_和\_\_getitem和\_\_delitem__

    目录 __setitem__和__getitem和__delitem__ 一.__setitem__ 二.__getitem__ 三.__delitem__与__delattr__ 四.总结 __se ...

  2. 剑指offer【11】- 矩形覆盖

    题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 在分析前不知道是什么序列,所以先看了n=1,n=2,n=3,n= ...

  3. windows Apache 配置支持HTTPS的SSL证书

    在设置Apache + SSL之前, 需要做: 安装Apache, 下载安装Apache时请下载带有ssl版本的Apache安装程序. 并且ssl需要的文件在如下的位置: [Apache安装目录]/m ...

  4. log 处理

    保存文件, 并打印到屏幕 import logging def set_log(log_file='log.log'): logging.basicConfig( level = logging.IN ...

  5. 树莓派docker搭建

    树莓派上 Docker 的安装和使用 Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟 ...

  6. Qt QString 和 LPCWSTR 的相互转换

    在windosw 编程中,常用到LPCWSTR 变量,QT中最常用到QString,下面提供QString和LPCWSTR 相互转换的方法 LPWSTR 转换成QString LPCWSTR str; ...

  7. day57-mysql-五种约束和sql语句逻辑执行顺序

    二.sql语句逻辑执行顺序 () SELECT () DISTINCT <select_list> 去重复 () FROM <left_table> () <join_t ...

  8. 传统方式接口测试返回值json验证

    1.返回值 2.验证方式: public void check200_N(Object obj, int ret_num) throws UnsupportedEncodingException, E ...

  9. android物理动画、Kotlin客户端、架构组件、菜单效果、应用选择器等源码

    Android精选源码 Android一个有趣的Android动画交互设计 android可伸缩日历效果源码 关于界面,全新的卡片风格,支持夜晚模式 Android 用 Kotlin 实现的基于物理的 ...

  10. 修改mysql密码报错: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '

    使用这种格式报错: 格式:mysql> set password for 用户名@localhost = password('新密码'); 找到另一种方法解决: ALTER USER 'root ...