使用终端建立自己需要工程
cocoapods应该是时下类库比较全面的三方管理工具,使用也特别方便,你只需将别人的类库在你的 podfile中 pod "SomeoneNameLibrary"
就可以在你的工程中使用这个库,作为一个开发者,你是否也想让别人在他的项目中 pod "YourNameLibrary"
,so,if your answer is yes,continue.
<!--+ 创建你的工程 (这里你有两种方式去创建你的工程)-->
使用cocoapods
官方提供的模板创建工程
打开终端,进入你要写代码的目录,输入一下命令
pod lib create YourNameLibrary
这时候你的终端会出现几个问题
What language do you want to use?? [ Swift / ObjC ] >Swift // 根据你自己使用的语言来输入,注意大小写 Would you like to include a demo application with your library? [ Yes / No ] >Yes // 你是不是要添加一个demo在你的工程里面,也根据你自己来选,带上会比较好 Which testing frameworks will you use? [ Quick / None ] >None // 个人认为这个测试框架没用,选None Would you like to do view based testing? [ Yes / No ] >No // 依然 No
- 到此,你已经向成功迈出了一大步,终端会自动执行
pod install
命令,接下来你或许你要等很久,因为 cocoapods 执行pod install
的时候,会自动检测repo
是否有更新,你懂得。所以如果你没有这个耐心的话,果断control+Z
进入你的目录,发现你的工程结构如下
YourNameLibrary _Pods.xcodeproj Example Podfile Pods YourNameLibrary YourNameLibrary.xcodeproj Tests LICENSE YourNameLibrary Assets Classes YourNameLibrary.podspec README.md
如果之前执行
pod install
的时候你按下了control+Z
,现在我们要补救一下,终端进入Example
目录下cd YourNameLibrary/ cd Example/ pod install --no-repo-update // 这句命令的意思是跳过更新repo 执行 install
执行完成之后,在Example下会有一个
YourNameLibrary.xcworkspace
打开它,你会看到这样的画面删除
ReplaceMe.swift
文件,把你给别人用的类库文件写在这个目录下面,示例代码写在ViewController.swift
中,接下来的事情交给你了,编译完成之后,继续continue
上传你的类库到 Github
看到这个标题,千万不要冲动,因为pod是根据Github提供的tag去匹配的,所以如果你不会设置tag值,还是一步一步跟着来
首先在你的Github主页上创建好仓库,并且和你的本地仓库关联,你可以借鉴一下的提交
git add. git commit -m "Initial commit" git tag 0.1.0 git push origin 0.1.0
验证你的 podspec
文件
在我们的工程根目录下有这样一个文件 YourNameLibrary.podspec
,这是你的类库许可文件,你的类库就是依据这个文件被别人从 Github 上导入到工程里面的,这里只做简单的介绍,如果想进一步了解,请到这里去看
编写
podspec
Pod::Spec.new do |s| s.name = "YourNameLibrary" #你的类库的名字, s.version = "0.1.0" #版本号 s.summary = "你的类库的简介" #简介s.description = "你的类库的具体描述" #这里要注意一点,描述和简介不能一样,而且描述要比简介长才可以通过验证s.homepage = "https://github.com/<GITHUB>/YourNameLibrary" #你的github主页 # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" #这里是截屏文件地址 s.license = 'MIT' #许可协议类型,一般就用MIT s.author = { "作者的名字" => "作者的邮箱" } s.source = { :git => "https://github.com/<GITHUB>/YourNameLibrary.git", :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/<TWITTER>'s.ios.deployment_target = '8.0' #你的类库支持的 iOS版本s.source_files = 'YourNameLibrary/Classes/**/*' s.resource_bundles = { 'YourNameLibrary' => ['YourNameLibrary/Assets/*.png'] }# s.public_header_files = 'Pod/Classes/**/*.h' # s.frameworks = 'UIKit', 'MapKit' #这是你的类库依赖的框架,一般的项目里都会导入UIKit等常用框架,所以这里不用导入 # s.dependency 'AFNetworking', '~> 2.3' #这是你的类库依赖的三方库,如果需要,请写在这里 end
验证
podspec
文件,终端进入到你的podspec
目录下,执行这一条命令pod lib lint YourNameLibrary.podspec
如果验证通过了会出现这个,你就可以继续下一步,如果没通过,你要排查错误,知道通过为止
关联cocoapods到你的类库
如果你已经走到这里,告诉我你有一点小激动,此时我要是多说些废话,或者没有下文。。。好的我们continue
如果你没有注册过cocoapods,请自觉先去注册,注册完成之后,执行下面这条命令
pod trunk push YourNameLibrary.podspec
如果出现终端输出
Validating podspec-> BlinkingLabel (0.1.0)
恭喜你,That`s all. Thank you. 你可以去意淫了
相关文章:

1.0 封装后的布局成本
2019独角兽企业重金招聘Python工程师标准>>> 1.0.1 C语言中(.c) 1. 数据和函数是分开声明的,语言本身没有支持“数据和函数”之间的关联性。 2. 这种程序方法为程序性的,由一组“分布在各个以功能为导向的函数…

通过gdb core dump方法查看程序异常时的堆栈信息
在Linux下可通过core文件来获取当程序异常退出(如异常信号SIGSEGV, SIGABRT等)时的堆栈信息。core dump叫做核心转储,当程序运行过程中发生异常的那一刻的一个内存快照,操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程…

日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的Tencent Kona JDK,分布式HTAP数据库 TBase,企业级…

iOS应用版本更新(自动提醒用户)
在#import "AppDelegate.h" 文件中的application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions 方法中调用检测结果 获得发布版本的Version 比较当前版本与新上线版本做比较 UIAlertView代理方法

Bash Shell脚本编程-变量知识
Shell:GUI CLI提供交互式接口:提高效率命令行展开:~ ,{}命令别名:alias命令历史:historyGlobbing:*,?,[],[^]命令补全:$PATH指定的目录下路径补全…

FFmpeg中可执行文件ffplay用法汇总
从https://ffbinaries.com/downloads 下载最新的4.1版本的windows 64位FFplay。目前linux下的只有3.2版本的。FFplay是一个由FFmpeg和SDL库组成的简单媒体播放器,它主要用作各种FFmpeg API的测试。 通过执行以下命令将FFplay信息重定位到ffplay_help.txt文件中便于…
用Go重构C语言系统,这个抗住春晚红包的百度转发引擎承接了万亿流量
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)11 月 20 日,百度的万亿流量转发引擎 BFE 登上了 GitHub Trending Top 3,今日 Star 已突破 270。事实上,这个曾经抗住 2019 年春晚抢红包的转发引擎早已于 2019 年夏在 G…

Swift3.0带来的变化汇总系列一——字符串与基本运算符中的变化
var string "Hello-Swift" //获取某个下标后一个下标对应的字符 char"e" //swift2.2 //var char string[startIndex.successor()] //swift3.0 var char string[string.index(after: startIndex)] //获取某个下标前一个下标对应的字符 char2 "t&qu…

vc+如何添加右键弹出菜单
2019独角兽企业重金招聘Python工程师标准>>> 一、创建新工程 二、编辑菜单资源 1、添加菜单 按“CtrlR”,双击“Menu”图标2、于菜单编辑器内编辑菜单四、添加代码(红色部分) void CCMenuView::OnUpdateShow(CCmdUI* pCmdU…
EMNLP 2019 | 大规模利用单语数据提升神经机器翻译
BDTC大会官网:https://t.csdnimg.cn/q4TY作者 | 吴郦军、夏应策来源 | 微软研究院AI头条(ID:MSRAsia)编者按:目前,目标语言端的无标注单语数据已被广泛应用于在机器翻译任务中。然而,目标语言端的无标注数据…

swift 3.0 json解析、字典转模型三种方案
swift3.0发布有一段时间了,发现很多朋友在swift3.0json解析上上遇到很多问题,我这边为大家提三种常见的json方案。 1.第一种是自带的字典转模型,自带的需要实现系统的setValue方法,然后自己还要实现dictToModel方法即可解析&…

海思3559A上编译GDB源码操作步骤及简单使用
1. 从http://ftp.gnu.org/gnu/gdb/ 下载最新稳定版8.3,即gdb-8.3.tar.gz,解压缩; 2. 在gdb-8.3目录下,创建一个build.sh脚本文件,内容如下: ./configure \--prefix"$PWD/install" \--targetaar…

Hibernate之继承映射
Hibernate的继承映射可以理解为两个持久化类之间的继承关系 例如老师和人之间的关系 持久化类 Person类 public class Person { private Integer id; privvate String name; private String sex; public Person (){} // 无参构造器 p…
AutoML未来可期,工程师的明天何去何从?
人工智能和机器学习建模专业技术人才紧缺,即使是高水平的人工智能专家,在大数据智能分析机器学习建模时,主要依靠人工经验,建模过程费时费力,缺少有效方法。为了解决这一突出问题,国内外出现了一种用机器学…

海思3559A上编译Valgrind源码操作步骤
注:按照以下步骤可以在海思板子上正常编译valgrind源码并生成valgrind可执行文件,但可能还不能在海思板子上正常使用。 1. 从http://valgrind.org/downloads/?srcwww.discoversdk.com 下载Valgrind 3.15.0即valgrind-3.15.0.tar.bz2; 2. 在valgrind-3…

Swift之SDWebImage第三方框架
在学习Swift过程中,最害怕的使用了OC的第三方框架 好不容易配置成功了,却出现了意外的Bug [UIImageView setImageWithURL:]: unrecognized selector sent to instance解决办法 第一次配置的时候,因为百度了教程,所以一次性成功…

文件分区格式化及挂载
创建一个5G的分区,文件系统为ext2,卷标为DATA,块大小为1024,预留管理空间为磁盘分区的8%;挂载至/backup目录,要求使用卷标进行挂载,且在挂载时启动此文件系统上的acl功能;在虚拟机创…

iOS开发swift版异步加载网络图片(带缓存和缺省图片)
iOS开发之swift版异步加载网络图片 与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存。 异步加载图片的核心代码如下: func setZYHWebImage(url:NSStr…
2097352GB地图数据,AI技术酷炫渲染,《微软飞行模拟器》游戏即将上线
整理 | 若名出品 | AI科技大本营(ID:rgznai100)“只要是真实存在的地方,你都能抵达。”作为即将成为第一款将整个地球化作虚拟世界来供玩家玩的游戏,微软的《微软飞行模拟器》(Microsoft Flight Simulator)…

开源库nothings/stb的介绍及使用(图像方面)
GitHub上有个开源的stb库,Star数已过万,地址为https://github.com/nothings/stb,为何叫stb,是用的作者名字的缩写Sean T. Barrett。此库仅包含头文件,除stretchy_buffer.h外,其它所有文件以前缀stb开头&…

git stuff
git stuff trick git bash 无法标记复制解决办法 git bash窗口左上角图标点击,选择属性->选项->快速编辑模式 确定就ok了 Usual Commands 创建分支git branch branch-namegit push origin branch-name 删除分支git branch -r -d origin/branch-name 删除远程分支git push…

swift3.0之闭包
Swift 相比原先的 Objective-C 最重要的优点之一,就是对函数式编程提供了更好的支持。 Swift 提供了更多的语法和一些新特性来增强函数式编程的能力,本文就在这方面进行一些讨论。 Swift 概览 对编程语言有了一些经验的程序员,尤其是那些对多…

Linux下gdb attach的使用(调试已在运行的进程)
在Linux上,执行有多线程的程序时,当程序执行退出操作时有时会遇到卡死现象,如果程序模块多,代码量大,很难快速定位,此时可试试gdb attach方法。 测试代码main.cpp如下,这里为了使程序退出时产生…
一行Python代码能实现这么多丧心病狂的功能?(代码可复制)
最近看知乎上有一篇名为《一行 Python 能实现什么丧心病狂的功能?》(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python代码可以做这么多丧心病狂的功能!整理了一下知乎上这篇文章的内容ÿ…

一步一步写算法(之图结构)
原文:一步一步写算法(之图结构) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 图是数据结构里面的重要一章。通过图,我们可以判断两个点之间是不是具有连通性…

FFmpeg中可执行文件ffprobe用法汇总
从https://ffbinaries.com/downloads 下载最新的4.1版本的Windows 64位FFprobe,FFprobe用于从多媒体流中获取相关信息或查看文件格式信息,并以可读的方式打印,FFprobe可以作为一个命令行程序单独使用。 通过执行以下命令将FFprobe信息重定位…

CocoaPods导入的库其头文件导入的方法
尽管CocoaPods使用十分方便,但其导入的第三方框架还是要经过几步操作,才能供项目使用; 第一步:导入库 1>-在终端进入项目的根目录; 2>-输入:touch Podfile,则项目文件夹会创建一个空的Podfile,这时,你可以将你想要导入的库写在里面.如: platform :ios, 6.0 pod RESid…
Google、微软、阿里、腾讯、百度这些大公司在GitHub上开源投入排名分析 | CSDN原力计划...
扫码参与CSDN“原力计划”作者 | 村中少年来源 | CSDN原力计划获奖作品现在有越来越多的公司都参与了开源,其背后有各自的目的所在,姑且不予讨论。本文是从多个方面分析各大公司在开源上的投入情况。由于全世界绝大多数的开源项目都有发布到Github上&…

jquery源码解析:each,makeArray,merge,grep,map详解
jQuery的工具方法,其实就是静态方法,源码里面就是通过extend方法,把这些工具方法添加给jQuery构造函数的。 jQuery.extend({ ...... each: function( obj, callback, args ) { //$.each(arr , function(i,value){}),第三个参数用于…

swift实现提示框第三方库:MBProgressHUD
GitHud的下载地址是:https://github.com/jdg/MBProgressHUD/ 下载完成后,将MBProgressHUD.h和MBProgressHUD.m拖入已经新建好的Swift项目。因为使用的swift语言,所以拖入项目的时候会提示是否新建一个桥接objective-c与swift的文件ÿ…