让自己的代码支持cocoaPods

作者: iOSDevVicky | 来源:发表于2016-08-10 21:22 被阅读445次

         昨天我们已经用GitHub管理了我们的代码,而且今天我们分享的内容也是基于昨天的内容的.所以昨天就是为今天做好准备和铺垫,下面就让我们一起进入自己pod的创建的文章中吧.

    1.第一步已经在上一篇文章中完成了将ImagePickerHeaderImage上传到了我们的GitHub仓库上,现在我们需要做的就是创建podspec文件,并且填写完成并提交到git上,然后我们就可以使用git的地址将我们的ImagePickerHeaderImage导入到我们需要引用的工程中了.好了现在就开始第二步了.

    2.创建podspec文件

    2.1首先创建文件夹,我们就将它叫做cocoapods吧,然后在终端输入命令将我们将项目克隆到本地.

    克隆项目

    2.2 克隆完成后,接下来我们就开始了我们的正题了.首先我们要进入到项目的根目录,然后用命令行创建podspec文件.

    创建podspec文件

    用编辑器或Xcode打开.podspec文件 (我自己用Xcode)

    删除不必要的注释(这里只简单介绍基本用法,所以只用到一部分必须得字段 更多字段请移步http://guides.cocoapods.org/syntax/podspec.html)

    我们看到文件目录已经发生了变化,多了一个podspec文件,然后使用Xcode打开.完成编辑.

    完成podspec文件

    其中我填写的只是一部分内容,还有依赖库等都多个没有在这说明,如果有需要可以前往(http://blog.wtlucky.com/blog/2015/02/26/create-private-podspec/)查看,编辑完成后我们需要我们填写的是否有错误,可以在终端输入pod lib lint来验证,如果发生错误,就认真修改错误,如果现实验证成功ImagePickerHeaderImage passed validation.表明验证通过了.

    在完成这一步的时候我简直是崩溃的,并没有什么报错,但是出现了警告,首先是要给git他一个特殊的标记,如果你们也出现了同样的错误,就请继续看下面的文章:

    这一步骤我遇到的几个错误:

    - WARN  | [iOS] license: Unable to find a license file

    原因:没有找到License文件,根据规则也可以直接把文本卸载podspec文件里

    解决方案:文件里面加一句即可:

    s.license= {

    :type => 'Copyright',

    :text => <<-LICENSE

    © 2016-2016 Vicky. All rights reserved.

    LICENSE

    }

    - WARN  | source: The version should be included in the Git tag.

    原因:podspec里的version要跟git上的tag相匹配

    解决方案:

    git tag '1.0.0'

    git push --tags

    就解决了警告,哎一言难尽啊.

    最后在验证是否通过:pod lib lint终于我看到了绿色的ImagePickerHeaderImage passed validation.表明你已经验证通过了,可以进行下面的步骤了.呵呵

    3.注册trunk账号

    pod trunk register  useremail 'username' --verbose

    如果出现错误,那就将命令行关掉重新来一次就好了,我就是这么干的(原因可能是DNS不对).

    然后你的邮箱会受到一个激活链接,点击链接就可以了.

    然后执行pod trunk me查看个人的信息.

    描述文件的意义是让CocoaPods搜索引擎知道代码作者、名称、版本号、源代码地址、依赖库等等信息。

    参考文献:

    http://guides.cocoapods.org/making/specs-and-specs-repo.html

    https://guides.cocoapods.org/syntax/podspec.html#group_root_specification

    编辑完podspec之后需要用以下命令校验以下文件格式是否正确,校验通过才可以上传。

    4.最后上传你的podspec文件

    pod trunk pushNAME.podspec

    上传之前一定保证验证通过.(这个过程时间比较长,需要等待)

    上传成功

    如果出现上面的样子,只能说兄弟你不容易终于成功了,赶紧去喝口82年的java压压惊.

    然后你可已测试一下你的是否上传成功了,因为他们需要验证,所以你必须查看一下

    使用命令pod search ImagePickerHeaderImage

    上传成功

    如果出现上图,那就证明上传成功,你可以去洗洗睡了,如果没成功就继续修改.我们程序猿总是活在bug中,兄弟莫慌.据说这个审核过程是要两三天的,但是我这边上传成功之后马上就可以搜到了。如果你那里搜不到的话,执行pod setup命令进行本地依赖库更新,然后再搜索。

    以后还会有更多的内容与你们分享.今天就写到这了.下次再见.

    本人联系方式:qq:513961360

    email:weiqi@hzdracom.com

    也可以加我们的qq群希望能与朋友们一起聊天和学习.群里还有很多iOS开发者,帮助我们解决问题,并且同时学习.

    qq群号:580284575

    最后祝大家生活幸福安康,自己写的代码,永远不出现bug.如果喜欢我的文章可以点击关注,如果感觉我写的这篇文章还不错,就点击喜欢吧.谢谢

    相关文章

      网友评论

      • coding_Zhang:我现在pod lib lint执行完之后显示passed validation通过验证,但是pod trunk push name.podspec后说是The `source_files` pattern did not match any file 博主知道怎么解决吗
        iOSDevVicky:@coding_Zhang 主要看一下sourcefile那块的问题
        iOSDevVicky:@coding_Zhang 你那个podspec文件还是有错
        iOSDevVicky:你执行一下pod spec lint
        这个
      • coding_Zhang:s.source_files = '/**/*.{h,m}'

        这个地方填的源码文件的路径吗
        iOSDevVicky:@coding_Zhang 对
        但是一定要准确无误,要不然就会报错
      • coding_Zhang:请问是直接push整个demo工程,还是单独供使用的库文件啊
        coding_Zhang:.podspec文件需要放在真正的源文件所在的文件夹下吗?
        iOSDevVicky:@coding_Zhang 但是讲你需要共同的文件放在一个实体文件夹下,在podspec填写时文件路径指向这个实体文件夹
        iOSDevVicky:@coding_Zhang 直接push整个工程就可以

      本文标题:让自己的代码支持cocoaPods

      本文链接:https://www.haomeiwen.com/subject/lsejsttx.html