zoukankan      html  css  js  c++  java
  • 将自己写的库上传到cocoapods(2015)

    2015年以前上传到cocoapods的方式相较于现在比较麻烦,现在用不上在此也就不提了。现在上传到cocoapods只需要简单的几步即可。

    1.首先你需要有一个自我感觉写的差不多的库。

    2.注册trunk

    $sudo gem install cocoapods
    
    pod trunk register dantesx2012@gmail.com 'dsxniubility'  --verbose
    

    第一个指令是更新一下cocoapods不管你现在是什么版本,这个指令也都没有坏处,他会升级到目前最高的正式版。

    第二个指令建议邮箱名和用户名与自己的github同步,之后去自己的邮箱中找到该邮件点击验证的链接完成注册。

    如果你不是在董铂然博客园看到本文,请点击查看原文

    完成之后再次进入终端查看自己注册信息

    pod trunk me
    

    如果成功的话可以看到如下图所示

    3.配置自己的podspec文件

    这是最重要的一步,配置里面的信息必须按照要求填写,否则会各种让你不通过。

    这里有两种方案,一是自动生成,二是找一个现成的podspec文件改改。

    这里建议第二种,因为第一种自动生成的东西里面会有很多用不到。第二种可以去github上找一些优秀代码把podspec打开看看再修改,这里我直接把我的贴出来了,免得去找了。建议使用sublime打开或vim修改,因为用普通的txt打开的话会出现诸如中英文单引号等一些列问题十分蛋疼。

    Pod::Spec.new do |s|
    s.name = 'SXWaveAnimate'
    s.version = '1.3.6'
    s.license = 'MIT'
    s.summary = 'An Animate Water view on iOS.'
    s.homepage = 'https://github.com/dsxNiubility/SXWaveAnimate'
    s.authors = { '董尚先' => 'dantesx2012@gmail.com' }
    s.source = { :git => 'https://github.com/dsxNiubility/SXWaveAnimate.git', :tag => s.version.to_s }
    s.requires_arc = true
    s.ios.deployment_target = '8.0'
    s.source_files = 'SXWaveAnimate/*.{h,m}'
    s.resources = 'SXWaveAnimate/images/*.{png,xib}'
    end
    

    这里的每一行感觉都是顾名思义很容易理解,需要注意的是最下方的source_files 和 resources 一定要分清,需要编译器编译的放在前者,资源文件放在后者。我之前坑了一次,把xib放在前者了,后面的步骤一路畅通,但是到最后pod install自己代码下来就会遇到编译不通过的问题。

    如果你需要直接把自己demo程序中Images.xcassets里的图片取出来当资源文件可以这么写

    s.resources = ['SXWaveAnimate/*.xib', 'SXWaveAnimateDemo/*.xcassets']
    

    4.上传代码

    把自己的项目提一次commit到github上。

    再打一下tag

    git tag '1.0.0' 
    git push --tags 
    

    tag和commit是两个不同的机制,就算commit全被reset了通过tag也可以找回代码。

    5.提交自己的podspec文件

    找到podspec的根目录下,再执行下面的指令

    pod trunk push SXWaveAnimate.podspec
    

    这一行代码做了很多之前步骤中的工作。包括检测podspec是否合法,转成json格式传输,上传到trunk服务器,再转到github的cocoapods库。

    执行之后通过的话显示是这个样子的

    失败的话可能会出现这样

    或者是这样

    失败的原因基本都是podspec文件里面的格式错误或者路径写错了,这里不要急慢慢来,没人限制你说只给你一次机会。

    出现上面成功的情况就是交给cocoapods团队审核了,这个过程是很快的,从几小时到一个两个工作日不等。建议今天成功了明天下午再来看看,用不着一直刷新。

    6.随便看看

    执行搜索操作就能看到自己写的库摆在那里了

    如果隔了很久还搜是不到自己的库,建议把仓库更新一下,再搜。

    如果感觉自己的pod速度太慢,可以更换淘宝的ruby源,具体操作可见唐巧大神的一片博客:http://www.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/。

    只要你为cocoapods提供了代码就能在你github的右边有个cocoaPods/Specs

     

    并且你回头看你的代码,代码所使用的语言占比也会出现Ruby

    我传的库是一个关于灌水动画的,有兴许的可以去看看或者pod install一下。https://github.com/dsxNiubility/SXWaveAnimate

    SXWaveAnimate

    7.更新库

    更新基本没有什么特殊操作,重复第4,5两步,记得把podspec和tag 都加1点,如果tag不变也是不允许的。

    更新库的话速度很快,我记得当时好像10分钟就能刷出来了,如果你发现你pod search 时自己是1.3.6版本 但是pod install后仍是1.3.5版本,并且在podfile文件中你也并没有指定固定的版本号,那就把podfile.lock删除就好了。

    如果你不是在董铂然博客园看到本文,请点击查看原文

  • 相关阅读:
    日志分析zz
    通过一个非法的指针或者NULL指针调用成员函数会发生什么?
    Android应用程序进程启动过程的源代码分析
    Android应用程序消息处理机制(Looper、Handler)分析
    Android应用程序绑定服务(bindService)的过程源代码分析
    Android系统进程Zygote启动过程的源代码分析
    Android应用程序注册广播接收器(registerReceiver)的过程分析
    Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析
    Android系统默认Home应用程序(Launcher)的启动过程源代码分析
    Android应用程序安装过程源代码分析
  • 原文地址:https://www.cnblogs.com/dsxniubility/p/4813864.html
Copyright © 2011-2022 走看看