zoukankan      html  css  js  c++  java
  • CocoaPods制作

    • 欢迎相同喜欢动效的工程师/UI设计师/产品添加我们
    • iOS动效特攻队–>QQ群:547897182
    • iOS动效特攻队–>熊熊:648070256

    引言:

    折腾了三四天,各种文章翻遍了,遇到各种坑。才创建好了自己的
    Pods。

    本文仅仅说制作CocoaPods的过程。

    其它的资料就不再反复阐述了。

    准备工作:

    必须了解的知识:
    1.podSpec
    2.podFile
    3.Spec Repo

    建议安装的插件:
    cocoapods-xcode-plugin
    https://github.com/kattrali/cocoapods-xcode-plugin
    这个插件能够非常方便的编辑podFile和podSpec文件,推荐安装
    插件图片

    流程概括:

    1,创建Pod项目
    2。提交项目至gitHub
    3。在项目中添加我们自己的代码
    4。配置podSpec
    5,本地验证podSpec是否合格
    6,配置gitHub相应版本号号
    7,创建本地Spec Repo
    8。向Spec Repo提交podSpec
    9,将本地podSpec提交至Pod Trunk
    10,新建其它项目。导入自己创建的pod看是否能正常使用
    11,完毕

    開始制作Pod:

    1.创建pod项目

    首先找个地方放置,我直接放在桌面上了

    cd ~/Desktop/

    选择项目位置

    通过命令创建项目(这个命令运行完之后会自己主动运行pod install命令)

    # pod lib create 项目名称
    pod lib create BearPodsTest

    运行这条命令后就開始从pod模板仓库中拖一个模板到本地。而且会问你5个问题。

    以下是我的配置,能够參考一下

    #选择编程语言
    What language do you want to use?? [ ObjC / Swift ]
     > Objc
    
    #是否导入demo
    Would you like to include a demo application with your library? [ Yes / No ]
     > Yes
    
    #须要哪种測试框架
    Which testing frameworks will you use? [ Specta / Kiwi / None ]
     > None
    
    #想了半天也不知道这个要怎么翻译,就选Yes了
    Would you like to do view based testing?

    [ Yes / No ] > Yes #设置项目名的前缀 What is your class prefix? > Bear

    看到pods installed就表示本地创建项目成功了
    这里写图片描写叙述

    注意坑:
    创建成功后,项目里的文件夹是这种。里面能够看到xcodeproj和xcworkspace。


    这里写图片描写叙述
    假设xcworkspace没有创建成功。而且在这里提示你podFile invalidate,或者说你的podFile有问题什么的。

    什么都不用说了,卸载你的pod,又一次安装pod,重头来过吧。在这里被坑了太多次了。

    2,提交项目至gitHub

    由于cocoaPods是基于git仓库的,所以在这里我们要把项目提交到git仓库。怎样提交到git仓库在这里就不做讨论了。


    注意:
    不要在仓库中创建README.md和LICENSE,由于此时我们的项目中已经有了这两项了。
    项目提交过后。线上仓库会有相同的文件
    这里写图片描写叙述

    3,在项目中添加我们自己的代码

    打开xcworkspace项目。依照下图的路径,在里面添加我们自己的代码。加完之后记得push到git仓库上。

    注意:以后每次在项目中添加或者删除文件时,都要运行pod install 或者 pod update操作

    这里写图片描写叙述

    4,配置podSpec

    能够參考这篇文章“自己定义cocoapods库”:https://segmentfault.com/a/1190000003064573
    “使用CocoaPods开发并打包静态库”:http://www.cnblogs.com/brycezhang/p/4117180.html
    用插件打开podSpec文件,或者用命令行打开BearPodsTest.podspec文件。准备配置
    以下參数必须配置

    s.name          #pod名称
    s.version       #pod版本号号,自己定义,一般从0.0.1開始
    s.summary       #pod简单介绍,必须自己填写
    s.description   #pod描写叙述,必须自己填写而且不能和summary一样
    s.homepage      #你的主页。没有的话能够用gitHub的个人主页
    s.license       #license
    s.author        #作者信息
    s.source        #版本号地址和相关信息,一般就是你的git仓库地址,也能够配置版本号号,commit标示
    s.platform      #支持的iOS系统版本号
    s.requires_arc  #是否支持ARC
    s.source_files  #文件路径。一般添加的路径位于Pod/Classes下,假设是须要其它路径的。根路径(root)要和Pod保持在同一层级,不然是无法找到路径的。假设没有特殊要求的话这个就不用改。
    s.dependency 'AFNetWorking'
    s.dependency 'MJExtension' #依赖其它POD仓库
    #
    # Be sure to run `pod lib lint BearPodsTest.podspec' to ensure this is a
    # valid spec before submitting.
    #
    # Any lines starting with a # are optional, but their use is encouraged
    # To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
    #
    
    Pod::Spec.new do |s|
      s.name             = "BearPodsTest"
      s.version          = "0.0.1"
      s.summary          = "BearSkill contain some methods used frequently in project."
    
    # This description is used to generate tags and improve search results.
    #   * Think: What does it do? Why did you write it?

    What is the focus? # * Try to keep it short, snappy and to the point. # * Write the description between the DESC delimiters below. # * Finally, don't worry about the indent, CocoaPods strips it! s.description = <<-DESC BearSkill contain some methods used frequently in project. And many other methods about layout. DESC s.homepage = "https://github.com/BearRan/BearPodsTest" # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" s.license = 'MIT' s.author = { "Bear" => "648070256@qq.com" } s.source = { :git => "https://github.com/BearRan/BearPodsTest.git", :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>' s.platform = :ios, '7.0' s.requires_arc = true s.source_files = 'Pod/Classes/**/*' s.resource_bundles = { 'BearPodsTest' => ['Pod/Assets/*.png'] } # s.public_header_files = 'Pod/Classes/**/*.h' # s.frameworks = 'UIKit', 'MapKit' # s.dependency 'AFNetworking', '~> 2.3' end

    5,本地验证podSpec是否合格

    运行pod lib lint来验证刚才配置的podSpec是否合格可用
    这里写图片描写叙述
    那个unable大家不用管。。。


    看到BearPodsTest passed validation.就表示podSpec本地验证通过了。

    6,配置gitHub相应版本号号

    刚才在配置podSpec的时候我设置了s.version = "0.0.1",版本号号我设置为0.0.1,如今我要在github上也设置相同的版本号号,不然待会线上验证和查询的时候pod无法找到相应版本号号的项目。

    git tag -m "first release" "0.0.1"
    git push --tags

    这里写图片描写叙述
    在githHub上能看到版本号号设置成功了

    7,创建本地Spec Repo

    运行命令

    #pod repo add pod名称 gitHub仓库地址
    pod repo add BearPodsTest https://github.com/BearRan/BearSkill.git

    运行完之后在~/.cocoapods/repos/以下会看到我们自己的repo
    这里写图片描写叙述

    8,向Spec Repo提交podSpec

    运行命令

    #pod repo push Pod名称 当前文件夹下的.podSpec文件 
    pod repo push BearPodsTest BearPodsTest.podspec 

    这里写图片描写叙述
    仍然忽略我的unable。。。
    看到这种界面就表示验证而且提交成功了。

    9,将本地podSpec提交至Pod Trunk

    运行命令

    #pod trunk push 当前文件夹下的.podSpec文件
    pod trunk push BearPodsTest.podspec

    第一次提交会提示让你输入gitHub的账号password,按提示的输入即可。
    这里写图片描写叙述
    这种界面出来就表示成功了。

    搜索来看下

    pod search BearPodsTest

    这里写图片描写叙述

    命令行能搜索到了,过一会就能在cocoaPods主页上搜索到你的pod了。
    这里写图片描写叙述

    10,新建其它项目,导入自己创建的pod看是否能正常使用

    新建一个项目。步骤省略。和平时导入pod一样。

    最后看下截图。

    这里写图片描写叙述
    如今能够在其它项目中引入自己的pod了。

    11。完毕

    是不是非常happy啊?哇咔咔!

    !!


    假设在做的过程中遇到问题能够私聊我。QQ:648070256,能帮的一定帮。

    最后来贴一下我在制作过程中要用到的各种文章和资料链接。

    1,CocoaPods具体解释之—-制作篇(这篇文章非常重要。。。

    基本就是依据这个来配置的)
    http://my.oschina.net/u/727843/blog/392784#OSC_h2_1
    2,使用CocoaPods开发并打包静态库
    http://www.cocoachina.com/ios/20141124/10297.html
    3。学习使用CocoaPods后涨的姿势(一些关于cocoaPod的方法,配置环境的时候建议阅读,还有cocoaPod的一些技巧)
    http://www.tuicool.com/articles/iYnuum6
    4,使用Cocoapods创建私有podspec(文章最后还有删除Spec Repo的方法,推了非常多測试的pod的能够看看)
    http://www.cocoachina.com/ios/20150228/11206.html
    5,CocoaPods之—-制作篇(还是制作的,基本相同。还是贴一下吧)
    http://blog.csdn.net/bluefish89/article/details/48030941
    6,Cocoapods 更新版本号失败。提示:“Errno::EACCES”
    http://www.jianshu.com/p/7ed7bd0e7e9a
    7,CocoaPods具体解释之—-制作篇
    http://blog.csdn.net/wzzvictory/article/details/20067595
    8。 CocoaPods 手把手五分钟教你制作自己的podspec文件(须要手动配置podSpec的能够看一下,只是一般用不到)
    http://iiiyu.com/2013/12/19/learning-ios-notes-thirty-one/
    9,cocoapods的创建和使用
    http://jingyan.baidu.com/article/c33e3f488a7b24ea15cbb50c.html
    10,怎样编写一个CocoaPods的spec文件
    http://ishalou.com/blog/2012/10/16/how-to-create-a-cocoapods-spec-file/
    11,cocoapods的使用,解决pod search出来的仓库版本号低于github仓库版本号的方法
    http://my.oschina.net/u/1432769/blog/384398

    以下是官方文档
    12,Using Pod Lib Create
    https://guides.cocoapods.org/making/using-pod-lib-create
    13,Making CocoaPods
    https://guides.cocoapods.org/making/index.html
    14。Creating Your First CocoaPod
    http://code.tutsplus.com/tutorials/creating-your-first-cocoapod–cms-24332#disqus_thread

  • 相关阅读:
    SpringCloud 超大文件上传解决方案:分片断点上传(一)
    SpringMVC 超大文件上传解决方案:分片断点上传(一)
    JSP 超大文件上传解决方案:分片断点上传(一)
    PHP 超大文件上传解决方案:分片断点上传(一)
    JavaScript 超大文件上传解决方案:分片断点上传(一)
    JS 超大文件上传解决方案:分片断点上传(一)
    VUE 超大文件上传解决方案:分片断点上传(一)
    B/S 超大文件上传解决方案:分片断点上传(一)
    poj 2115 Looooops
    hdu 2669 Romantic
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7136468.html
Copyright © 2011-2022 走看看