当前位置: 首页 > 编程日记 > 正文

使用终端建立自己需要工程

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 打开它,你会看到这样的画面

     QQ20160428-3.png

    删除 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语言中&#xff08;.c&#xff09; 1. 数据和函数是分开声明的&#xff0c;语言本身没有支持“数据和函数”之间的关联性。 2. 这种程序方法为程序性的&#xff0c;由一组“分布在各个以功能为导向的函数…

通过gdb core dump方法查看程序异常时的堆栈信息

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

日均350000亿接入量,腾讯TubeMQ性能超过Kafka

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;【导读】近日&#xff0c;腾讯开源动作不断&#xff0c;相继开源了分布式消息中间件TubeMQ&#xff0c;基于最主流的 OpenJDK8开发的Tencent Kona JDK&#xff0c;分布式HTAP数据库 TBase&#xff0c;企业级…

iOS应用版本更新(自动提醒用户)

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

Bash Shell脚本编程-变量知识

Shell:GUI CLI提供交互式接口&#xff1a;提高效率命令行展开&#xff1a;~ &#xff0c;{}命令别名&#xff1a;alias命令历史&#xff1a;historyGlobbing&#xff1a;*&#xff0c;&#xff1f;&#xff0c;[]&#xff0c;[^]命令补全&#xff1a;$PATH指定的目录下路径补全…

FFmpeg中可执行文件ffplay用法汇总

从https://ffbinaries.com/downloads 下载最新的4.1版本的windows 64位FFplay。目前linux下的只有3.2版本的。FFplay是一个由FFmpeg和SDL库组成的简单媒体播放器&#xff0c;它主要用作各种FFmpeg API的测试。 通过执行以下命令将FFplay信息重定位到ffplay_help.txt文件中便于…

用Go重构C语言系统,这个抗住春晚红包的百度转发引擎承接了万亿流量

整理 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;11 月 20 日&#xff0c;百度的万亿流量转发引擎 BFE 登上了 GitHub Trending Top 3&#xff0c;今日 Star 已突破 270。事实上&#xff0c;这个曾经抗住 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”&#xff0c;双击“Menu”图标2、于菜单编辑器内编辑菜单四、添加代码&#xff08;红色部分&#xff09; void CCMenuView::OnUpdateShow(CCmdUI* pCmdU…

EMNLP 2019 | 大规模利用单语数据提升神经机器翻译

BDTC大会官网&#xff1a;https://t.csdnimg.cn/q4TY作者 | 吴郦军、夏应策来源 | 微软研究院AI头条&#xff08;ID:MSRAsia&#xff09;编者按&#xff1a;目前&#xff0c;目标语言端的无标注单语数据已被广泛应用于在机器翻译任务中。然而&#xff0c;目标语言端的无标注数据…

swift 3.0 json解析、字典转模型三种方案

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

海思3559A上编译GDB源码操作步骤及简单使用

1. 从http://ftp.gnu.org/gnu/gdb/ 下载最新稳定版8.3&#xff0c;即gdb-8.3.tar.gz&#xff0c;解压缩&#xff1b; 2. 在gdb-8.3目录下&#xff0c;创建一个build.sh脚本文件&#xff0c;内容如下&#xff1a; ./configure \--prefix"$PWD/install" \--targetaar…

Hibernate之继承映射

Hibernate的继承映射可以理解为两个持久化类之间的继承关系 例如老师和人之间的关系 持久化类 Person类 public class Person { private Integer id; privvate String name; private String sex; public Person (){} // 无参构造器 p…

AutoML未来可期,工程师的明天何去何从?

人工智能和机器学习建模专业技术人才紧缺&#xff0c;即使是高水平的人工智能专家&#xff0c;在大数据智能分析机器学习建模时&#xff0c;主要依靠人工经验&#xff0c;建模过程费时费力&#xff0c;缺少有效方法。为了解决这一突出问题&#xff0c;国内外出现了一种用机器学…

海思3559A上编译Valgrind源码操作步骤

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

Swift之SDWebImage第三方框架

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

文件分区格式化及挂载

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

iOS开发swift版异步加载网络图片(带缓存和缺省图片)

iOS开发之swift版异步加载网络图片 与SDWebImage异步加载网络图片的功能相似&#xff0c;只是代码比较简单&#xff0c;功能没有SD的完善与强大&#xff0c;支持缺省添加图片&#xff0c;支持本地缓存。 异步加载图片的核心代码如下&#xff1a; func setZYHWebImage(url:NSStr…

2097352GB地图数据,AI技术酷炫渲染,《微软飞行模拟器》游戏即将上线

整理 | 若名出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;“只要是真实存在的地方&#xff0c;你都能抵达。”作为即将成为第一款将整个地球化作虚拟世界来供玩家玩的游戏&#xff0c;微软的《微软飞行模拟器》&#xff08;Microsoft Flight Simulator&#xff09;…

开源库nothings/stb的介绍及使用(图像方面)

GitHub上有个开源的stb库&#xff0c;Star数已过万&#xff0c;地址为https://github.com/nothings/stb&#xff0c;为何叫stb&#xff0c;是用的作者名字的缩写Sean T. Barrett。此库仅包含头文件&#xff0c;除stretchy_buffer.h外&#xff0c;其它所有文件以前缀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 最重要的优点之一&#xff0c;就是对函数式编程提供了更好的支持。 Swift 提供了更多的语法和一些新特性来增强函数式编程的能力&#xff0c;本文就在这方面进行一些讨论。 Swift 概览 对编程语言有了一些经验的程序员&#xff0c;尤其是那些对多…

Linux下gdb attach的使用(调试已在运行的进程)

在Linux上&#xff0c;执行有多线程的程序时&#xff0c;当程序执行退出操作时有时会遇到卡死现象&#xff0c;如果程序模块多&#xff0c;代码量大&#xff0c;很难快速定位&#xff0c;此时可试试gdb attach方法。 测试代码main.cpp如下&#xff0c;这里为了使程序退出时产生…

一行Python代码能实现这么多丧心病狂的功能?(代码可复制)

最近看知乎上有一篇名为《一行 Python 能实现什么丧心病狂的功能&#xff1f;》&#xff08;https://www.zhihu.com/question/37046157&#xff09;的帖子&#xff0c;点进去发现一行Python代码可以做这么多丧心病狂的功能&#xff01;整理了一下知乎上这篇文章的内容&#xff…

一步一步写算法(之图结构)

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

FFmpeg中可执行文件ffprobe用法汇总

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

CocoaPods导入的库其头文件导入的方法

尽管CocoaPods使用十分方便,但其导入的第三方框架还是要经过几步操作,才能供项目使用; 第一步:导入库 1>-在终端进入项目的根目录; 2>-输入:touch Podfile,则项目文件夹会创建一个空的Podfile,这时,你可以将你想要导入的库写在里面.如: platform :ios, 6.0 pod RESid…

Google、微软、阿里、腾讯、百度这些大公司在GitHub上开源投入排名分析 | CSDN原力计划...

扫码参与CSDN“原力计划”作者 | 村中少年来源 | CSDN原力计划获奖作品现在有越来越多的公司都参与了开源&#xff0c;其背后有各自的目的所在&#xff0c;姑且不予讨论。本文是从多个方面分析各大公司在开源上的投入情况。由于全世界绝大多数的开源项目都有发布到Github上&…

jquery源码解析:each,makeArray,merge,grep,map详解

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

swift实现提示框第三方库:MBProgressHUD

GitHud的下载地址是&#xff1a;https://github.com/jdg/MBProgressHUD/ 下载完成后&#xff0c;将MBProgressHUD.h和MBProgressHUD.m拖入已经新建好的Swift项目。因为使用的swift语言&#xff0c;所以拖入项目的时候会提示是否新建一个桥接objective-c与swift的文件&#xff…