• CocoaPods安装使用及上传


    1.升级Ruby环境

    sudo gem update --system

    如果Ruby没有安装,请参考 如何在Mac OS X上安装 Ruby运行环境

    2.安装CocoaPods时我们要访问cocoapods.org,用淘宝的RubyGems镜像来代替官方版本,执行以下命令:

    $ gem sources --remove https://rubygems.org/
    //等有反应之后再敲入以下命令
    $ gem sources -a https://ruby.taobao.org/

    为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:

    $ gem sources -l

    只有在终端中出现下面文字才表明你上面的命令是成功的:

    *** CURRENT SOURCES ***
    
    http://ruby.taobao.org/

    上面的命令,有时试了会没有效,请参考淘宝网的https://ruby.taobao.org

    复制代码
    $ gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/
    $ gem sources -l
    *** CURRENT SOURCES ***
    
    https://ruby.taobao.org
    # 请确保只有 ruby.taobao.org
    $ gem install rails
    复制代码

    3.安装Cocoapods,在终端输入命令(10.11以上,请跳过该步骤,看第4点)

    $ sudo gem install cocoapods

    等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。

    4.10.11以上,上面的命令是不生效了,因为10.11把cocoapods直接干掉了(这里可能会报错, Ruby的版本太低了, 必须是2.2.0以上版本, 不然

    sudo gem update --system 都会报错不然)
    sudo gem install -n /usr/local/bin cocoapods
    再加一句,完美解决
    sudo xcode-select --switch /Applications/Xcode.app

    在终端中输入如下命令来完成安装:

    //将 CocoaPods Specs repository复制到你电脑上~/.cocoapods目录下
    pod setup

    它需要一点时间来完成,你等就是了
    如果安装失败 ~/.cocoapods 里面是空的,就需要重新setup
    命令如下:

    pod repo remove master  
    pod setup

    完毕之后这个文件夹大概有 将近200M,需要花费比较多时间,请耐心等待。
    到这里你已经成功安装了CocoaPods

    Cocoapods使用

    1.使用search命令搜索类库名

    $ pod search AFNetworking

    出现Setting up CocoaPods master repo,说明Cocoapods在将它的信息下载到 ~/.cocoapods里;

    cd  到该目录里,用du -sh *命令来查看文件大小,每隔几分钟查看一次,这个目录最终大小是400多M左右,就是完成了

    得到结果如下图:

    从这个图上,我们看到AFN有好多版本,最新的版本是2.6.0.

    2.打开xcode,新建一个工程,工程名为CocoapodsSample。

    使用命令cd,cd后面跟的是工程目录名,可以直接拉进来,

    回车后,输入命令创建Podfile文件

    $ touch Podfile

    我们可以看到,在根目录下,多了一个Podfile文件

    3.使用vim编辑podfile文件,使用命令

    $ vim Podfile

    然后在Podfile文件中输入以下文字:

    platform :ios, '7.0'

    target "testCocoa" do

    pod 'MBProgressHUD', '~> 0.8'

    pod 'AFNetworking', '~> 3.0'

    end

    这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.5.0。

    testCocoa是你项目的名字

    在编辑完后按 esc,然后按":",这个时候输入wq保存退出。

    这个时候打开Podfile文件就会看到里面添加了刚才在终端输入的两行语句,如下图

    4.这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:

    $ pod install 

    安装成功后,如下图:

    这个时候,会看到多了一个.xcworkspace工程,以后打开项目就用 CocoapodsSample.xcworkspace 打开,而不是之前的.xcodeproj文件。

    5.打开 CocoapodsSample.xcworkspace 工程,你会惊喜地发现,AFNetwoking已经成功导入项目了。

    现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入:

    #import <AFNetworking.h>
    或者
    #import "AFNetworking.h"

    然后编译,看看是否出错。如果你严格按照小编上述的步骤来,是不可能出错的啦。

    另:

    如果有一些包已经存在了,或者我们更改了Podfile里面的版本,可以使用以下命令更新

    $ pod update

     关于Podfile文件编辑时,第三方库版本号的各种写法:

    复制代码
    pod ‘AFNetworking’      //不显式指定依赖库版本,表示每次都获取最新版本
    pod ‘AFNetworking’,  ‘2.0’     //只使用2.0版本
    pod ‘AFNetworking’, ‘>2.0′     //使用高于2.0的版本
    pod ‘AFNetworking’, ‘>=2.0′     //使用大于或等于2.0的版本
    pod ‘AFNetworking’, ‘<2.0′     //使用小于2.0的版本
    pod ‘AFNetworking’, ‘<=2.0′     //使用小于或等于2.0的版本
    pod ‘AFNetworking’, ‘~>0.1.2′     //使用大于等于0.1.2但小于0.2的版本,相当于>=0.1.2并且<0.2.0
    pod ‘AFNetworking’, ‘~>0.1′     //使用大于等于0.1但小于1.0的版本
    pod ‘AFNetworking’, ‘~>0′     //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
    复制代码

    cocoaPods的上传

    一、注册trunk

    在注册trunk之前,我们需要确认当前的CocoaPods版本是否足够新。trunk需要pod在0.33及以上版本,如果你不满足要求,打开Terminal使用ruby的gem命令更新pod:

    1
    sudo gem install cocoapods

    更新结束后,我们开始注册trunk:

    1
    pod trunk register zilin_weng@163.com 'weng1250'  --verbose

    邮箱以及用户名请对号入座。用户名我使用的是Github上的用户名。--verbose参数是为了便于输出注册过程中的调试信息。执行上面的语句后,你的邮箱将会受到一封带有验证链接的邮件,如果没有请去垃圾箱找找,有可能被屏蔽了。点击邮件的链接就完成了trunk注册流程。使用下面的命令可以向trunk服务器查询自己的注册信息:

    1
    pod trunk me

    输出如下信息就表示你注册成功,可以进行下面的流程:

    二、配置PodSpec

    在这一部分中我们需要做两件事:1、为你的代码添加podspec描述文件;2、将podspec文件通过trunk推送给CocoaPods服务器

    2.1 添加podspec描述文件

    这一步与更换trunk方式前的操作完全一样。什么是podspec描述文件呢?简单地讲就是让CocoaPods搜索引擎知道你的代码的作者、版本号、源代码地址、依赖库等信息的文件。任何支持CocoaPods的开源代码都必须有podspec文件。CocoaPods在github中用一个repo来管理所有支持CocoaPods的开源代码:https://github.com/CocoaPods/Specs

    那如何编写podspec文件呢?官方提供了一个模板并附有非常详细的注释说明。关于podspec文件的编写本文不打算详细讲。强烈建议你看这篇文章的第三节部分,第四第五节不必看因为已经过时了。

    建议直接拿一些成熟的开源库的podspec改就行,生成的模板里有很多冗余的属性。

    这里要注意一点,有时你写的podspec文件在后面push的时候会提示"The `source_files` pattern did not match any file."错误,但是能用pod lib lint命令做本地校验时又是OK的。为什么呢?上述错误的意思是pod在网络上根据你指定的路径找不到相关文件。这时候你要核对网上git仓库的路径与source_files(其他_files字段同理)要对应。*_files字段指的是网络git上的路径

    2.2 通过trunk推送podspec文件

    现在我们已经有了自己的podspec文件,但是在推送podspec文件之前你需要确认以下几点:

    1、确保你的源码已经push到Github上。如果还没push源代码,可以用Terminal cd到本地源代码的根目录,执行:

    1
    2
    3
    git add -A
    git commit -m "first commit for version 1.0.0"
    git push origin master

    当然,你也可以使用SourceTree等GUI形式的Git客户端进行代码的推送操作。

    2、确保你所push的代码已经打上"version tag",也就是给源代码打上版本号标签:

    1
    2
    git tag '1.0.0' 
    git push --tags  

    只有确保了以上两点,CocoaPods才能更准确地找到你的repo。

    现在我们开始通过trunk上传你的podspec文件。先cd到podspec文件所在目录,执行:

    1
    pod trunk push WZLBadge.podspec

    文件名自行对号入座。上面的代码做了三件事:(可以对着文章开头的流程图看)

    1、验证你的podspec文件是否合法。在trunk方式之前我们一般用“pod lib lint”命令进行验证。

    2、上传podspec文件到trunk服务器(其实最终也会自动添加到https://github.com/CocoaPods/Specs中,只是使用trunk方式省去了以前先fork在pull request的繁琐操作)

    3、将你上传的podspec文件转成json格式文件

    执行上面的push操作,就相当于你把你的源代码提交给CocoaPods团队审核了,一般需要一到两个工作日可以审核结束。这种心情有点像提交App给Apple审核,哈哈。

    *更正:现在CocoaPods审核只需要几秒钟或者几分钟就可以完成了。

    1s.source_files 写错了

    s.source_files = "MBProgressHUD+YF/Tool/**/*.{h,m}"

    2、一定要打版本

    git tag '1.0.0'

    git push --tags

    同时,记得  s.version      = "1.0.0" 这里的两个版本要一致

    3、pod lib lint 验证的时候有警告 --allow-warnings 了以后 , push的时候也要 在结尾加上, 不然还是通过不了

    4、上传成功后,搜索不到, 记得 pod setup , 如果依然搜索不到,

         终端输入rm ~/Library/Caches/CocoaPods/search_index.json

         输出:Creating search index for spec repo 'master'.. Done!,稍等片刻就会出现

  • 相关阅读:
    或许因为缺少默认route配置而导致的的ping超慢,甚至timeout
    zabbix没有frontends目录
    jenkins自动部署到tomcat报错:ERROR: Publisher hudson.plugins.deploy.DeployPublisher aborted due to exception
    tomcat访问manager报404;server.xml中配置了Context path
    配置使用;yum安装slatstack的master,minion<at>centos6_x86_64
    jenkins报错;自定义工作目录;
    深入剖析Java中的装箱和拆箱
    探秘Java中的String、StringBuilder以及StringBuffer
    Java异常处理和设计
    JVM的内存区域划分
  • 原文地址:https://www.cnblogs.com/bigshow1949/p/5642770.html
Copyright © 2020-2023  润新知