创建Cocoapods私有库
本文以自己在公司做的一个手势密码私有库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私有库的更多相关文章
- 从零开始创建CocoaPods私有库
为什么要创建CocoaPods私有库? 避免重复的造轮子 节约时间,方便管理自己的代码 精益求精 创建CocoaPods私有库 1.创建私有仓库工程 执行命令pod lib create SmartB ...
- iOS:最详细的创建CocoaPods私有库教程
一.感慨 说实话,创建这个CocoaPods私有库,我愣是搞了两个星期,创建的过程中,自己的感情波动是这样的:激情四射---->有点困惑----->极度困惑----->有点失望--- ...
- iOS 创建本地私有库 保存功能代码
创建本地私有库 >>> cd /Users/cxx/Desktop/Mange_JJH/Lib >>> pod lib create TZTools >> ...
- iOS之创建CocoaPods公有库教程
简介 在开发过程中,经常会使用到第三框架,我们通过一个pod install命令,很方便的就将第三方框架加到我们自己的项目中. 如果我们也想将自己写的组件或库开源出去,让别人也可以通过pod inst ...
- 工具第二天 cocoaPods 私有库的创建
之前介绍了cocoaPods的安装与使用,今天简单谈一下 自己的私有库运用cocoaPods依赖. cd到需要做库的工程目录下 创建一个podspec文件 创建:pod spec create 名称 ...
- 【原+转】创建CocoaPods私有podspec
在我的上一篇文章<iOS 手把手教你发布代码到CocoaPods>中着重介绍如何将自己的代码索引添加到公开的CocoaPods中,当你需要主动地向大众开源你的代码时需要那么做.但在现实中我 ...
- macOS sierra 10.12 Cocoapods 私有库
使用Cocoapods创建私有podspec 见文章:http://www.cocoachina.com/ios/20150228/11206.html 或http://blog.wtlucky.co ...
- 创建Pods私有库
Pods私有库创建步骤 创建私有 Spec Repo 创建Pod项目工程文件 创建podspec文件 本地测试podsspec文件 向Spec Repo提交podspec Pod库使用 更新维护pos ...
- 通过构建Cocoapods私有库进行组件化开发探索
专题一 一.创建私有索引库 选Github或者码云都可以,本例以Github为例.创建私有索引库用来作为自己组件库的索引: 二.本地添加私有索引库 添加:pod repo add 索引库名称 索引库地 ...
随机推荐
- 自由职业平台Upwork申请上市,能给国内猪八戒网带来什么启示?
当下,在互联网的全面渗入下已经对整个社会的运行机制.大众的生活产生了前所未有的影响.尤其是在工作方面,更是衍生出诸多新兴职业.如,主播.水军.新媒体运营.自媒体人等.值得注意的是,这些职业绝大部分都有 ...
- springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+freemarker+layui
前言: 开发环境:IDEA+jdk1.8+windows10 目标:使用springboot整合druid数据源+mysql+mybatis+通用mapper插件+pagehelper插件+mybat ...
- 简单的tab栏切换
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- iterm2 粘贴时有多余字符 0~ 1~
https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/issues/31 printf '\e[?2004l'
- TextBox换行C#文本框换行.net文本框换行textarea换行
在TextBox中输入的内容,显示的时候如果用lable显示,无法换行 可以使用TextBox输入,然后也使用TextBox 显示,这样换行输入的内容,显示的时候也可以换行.显示的时候可以设置一下控件 ...
- ZZJ_淘淘商城项目:day02(淘淘商城01 - 项目讲解、环境搭建)
在用Eclipse的开发中,可手动排除不必要的依赖坐标传递. <!-- JPA的1.0依赖 --> <dependency> <groupId>javax.pers ...
- tensorflow(三)
1.placeholder 一个数据占位符,用于在构建一个算法时留出一个位置,然后在run时填入数据. x = tf.placeholder(tf.float32) y = tf.placeholde ...
- 前端-HTLM
前端简介: 什么是前端? 任何与用户直接打交道的操作界面都可以被称为前端,如:网页界面,手机界面.... 前端的学习历程和内容: 要学习的内容: 三大重点: 1.Web服务的本质: 浏览器中敲入网址回 ...
- del|append()|insert()|pop()|remove()|sort()|sorted|reverse()|len()|range()|min()|max()|sum()|[:]|区分两种列表复制|
fruit = ['apple','banana','peach'] print fruit[0],fruit[-1] fruit_1 =[] fruit_1.append('orange') pri ...
- spring自带的定时任务功能,基于注解和xml配置
1.spring的配置文件 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=&quo ...