zoukankan      html  css  js  c++  java
  • 给自己的开源项目添加CocoaPods支持

    摘要:

    CocoaPods是提供对第三方库依赖的管理工具,通过CocoaPods我们可以方便的管理每一个第三方库:添加、删除和更新,不需要我们做太多的配置工作,如此便可直观、集中和自动化地管理我们项目的第三方库。

    本文不对CocoaPods做全面的介绍,想对CocoaPods做更多了解的可以阅读这篇文章:Cocoapods完整使用篇。本文主要介绍一下如何给自己的开源项目添加CocoaPods的支持。

    一、创建一个配置文件(pod spec create 文件名)

    要使得我们的项目支持CocoaPods,就需要告诉CocoaPods我们的项目的一些信息:源文件地址、支持的平台和版本、编译条件、依赖的系统库及第三方的库等等。这些信息是通过一个以“spec”为扩展名的文件存储起来的。因此,我们需要创建这个配置文件,编辑好项目的配置信息,然后把这个文件上传给CocoaPods。

    pod spec create YQXxxxxxx

    二、编辑配置文件(配置项目的信息)

      9 Pod::Spec.new do |s|

    18 s.name = "YQTest" #项目名称 19 s.version = "0.0.1" #项目版本 20 s.summary = "A short description of YQTest." #项目摘要 28 s.homepage = "http://EXAMPLE/YQTest" 39 s.license = "MIT" 53 s.author = { "yanghy" => "yanghy2013@gmail.com" }

    64 #项目支持的平台及系统版本,若只支持ios,删除注释符号 65 # s.platform = :ios 66 # s.platform = :ios, "5.0" 67 68 # When using multiple platforms 69 # s.ios.deployment_target = "5.0" 70 # s.osx.deployment_target = "10.7" 71 # s.watchos.deployment_target = "2.0" 72 # s.tvos.deployment_target = "9.0" 81 s.source = { :git => "http://EXAMPLE/YQTest.git", :tag => 0.0.1" } 92 s.source_files = "Classes", "Classes/**/*.{h,m}" #源文件
    118 #依赖的系统框架 119 # s.framework = "SomeFramework" 120 # s.frameworks = "SomeFramework", "AnotherFramework" 121 122 #第三方依赖 123 s.dependency "Masonry", "~>0.6"
    135 # 是否支持arc 136 s.requires_arc = true

    141 end

    三、配置代码仓库

    因为在第二步的配置文件中给版本号配置了:0.0.1,因此我们须要给我们的项目配置一个tag,使用如下命令

    1 git tag 0.0.1 #添加一个tag
    2 git push --tags #推送tag到远程

    四、验证我们的配置是否正确

    1 pod spec lint YQXxxx.podspec

    我在配置过程中出现吃错误:

    1、因为项目中使用了UIKit,但是在配置中没有指定平台,因此在OSX平台上编译错误

    解决办法:指定项目的平台 (# s.platform = :ios)

    2、没有指定系统的版本号,在不支持arc的系统下编译失败

    解决办法:指定系统版本(# s.platform = :ios, "5.0")

    五、提交到CocoaPods

    1 pod trunk push YQXxxx.podspec

    没有配置作者的会出现:[!] You need to register a session first.错误,此时用如下命令注册一个会话后再提交

    1 pod trunk register email "name" --description="macbook pro"

    到此为止,你就可以使用pod search 搜索到你的项目了!

  • 相关阅读:
    调试cuda程序一定要细心啊 不然一个bug会折腾你2天
    XML和实体类之间相互转换(序列化和反序列化)
    C#实现实体类和XML相互转换
    C#压缩打包文件例子
    通过锁字符串达到控制并发的效果C#
    巧用Ajax的beforeSend 提高用户体验
    HTML代码在线运行工具
    .NET使用ZXing.NET生成中间带图片和不带图片的二维码
    获取电脑硬件信息 (硬盘,cpu,内存等)
    C# http请求带请求头部分
  • 原文地址:https://www.cnblogs.com/yueyuanyueyuan/p/5560954.html
Copyright © 2011-2022 走看看