提交Framework到CocoaPods

作者: 我就叫Tom怎么了 | 来源:发表于2017-07-03 15:36 被阅读497次

    CocoaPods集成方式的添加

    1.什么是CocoaPods

    CocoaPods是一个负责管理iOS项目中第三方开源库的工具。CocoaPods的项目源码在Github上管理。该项目开始于2011年8月12日,在这两年多的时间里,它持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。

    2.CocoaPods的原理

    CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。

    3.CocoaPods的安装及使用

    3.1 设置ruby的软件源

    gem sources -l #(查看当前ruby的源)
    
    gem sources --remove https://rubygems.org/ #(移除当前ruby的源)
    
    gem sources -a https://ruby.taobao.org/ #(设置当前ruby的新源)
    
    gem sources -l #(再次查看当前ruby的源)
    
    输出:
    
    *** CURRENT SOURCES ***
    
    https://ruby.taobao.org/
    
    

    ok,ruby的软件源设置已完成。

    3.2 设置gem为最新版本

    sudo gem update --system
    

    成功提示:

    Latest version currently installed. Aborting.
    

    3.3 执行安装CocoaPods命令

    查看cocoapods的版本号

    pod - -version
    

    如果CocoaPods版本号小于0.33需要更新版本

    sudo gem install  cocoapods
    

    3.4 Cocoapods的使用

    • 进入工程目录
    $ cd Documents/你的工程
    
    • 建立或打开Podfile(配置文件)
    $ vim podfile
    
    • 进入vim编辑器编辑配置文件

    友情提示:键盘输入 i,进入编辑模式

    platform :ios, '7.0'
    target '你的项目名称' do
    
    pod 'AFNetworking' (你所需要的三方库)
    ...
    
    end
    
    
    • 退出vim编辑器
      Esc输入:wq回车。保存并退出。(如果不想保存输入:q

    • 执行下载

    pod install
    

    4.发布framework到CocoaPods

    网上很多发布开源项目,可以搜索一下。可能有些商业原因不可以开源某项目的时候,就需要使用资源包的方式了。这里主要写一下framework包的相关上传方法,。拿MyFirstFramework.framework为例。(个人还是支持开源,有知识大家一起学)

    4.1 创建GitHub仓库

    • 在GitHub上新建仓库(这里不细说了,自行百度)

    • 创建成功后 clone远程仓库到本地

    $ cd Documents     //你希望存放的地址
    
    $ git clone https: //仓库地址
    

    4.2创建Trunk账户

    • 注册Trunk账户
    pod trunk register 邮箱地址 ‘用户名’ –verbose
    
    • 注册命令执行完之后,对应的邮箱地址会收到一封邮件,去邮箱确认注册。

    • 查看自己的注册信息

    $ pod trunk me
    

    4.3创建.podspec文件

    • .podspec文件的作用是为了让CocoaPods搜索引擎知道该代码的作者、版本号、概要、描述、源代码地址、部署版本、依赖的框架等描述信息。

    • 创建.podspec文件

    pod spec create MyFirstFramework
    
    • 双击打开.podspec文件进行描述信息编辑
    Pod::Spec.new do |s|
    
    #名称
    s.name         = 'MyFirstFramework'
    
    #版本号
    s.version      = '1.0.0'
    
    #许可证
    s.license      = { :type => 'MIT' } 
    
    #项目主页地址 
    s.homepage     = 'https://github.com/..../MyFirstFramework'    
    
    #作者
    s.authors      = { 'Andrew' => '290649927@qq.com' }
    
    #简介
    s.summary      = 'A delightful iOS framework.'  
    
    #项目的地址 (注意这里的tag位置,可以自己写也可以直接用s.version,但是与s.version一定要统一)
    s.source       = { :git => 'https://github.com/.../MyFirstFramework.git', :tag => s.version }
    
    #支持最小系统版本
    s.platform     = :ios, '7.0'
    
    #需要包含的源文件 
    s.source_files = 'MyFirstFramework/MyFirstFramework.framework/Headers/*.{h}'
    
    #你的SDK路径
    s.vendored_frameworks = 'MyFirstFramework/MyFirstFramework.framework'
    
    #SDK头文件路径
    s.public_header_files = 'MyFirstFramework/MyFirstFramework.framework/Headers/MyFirstFramework.h'
    
    #依赖库
    s.libraries    = 'sqlite3','icucore','z'
    
    #依赖库
    s.frameworks   = 'UIKit','Foundation'
    
    end
    
    
    • 保存

    4.4放置你的framework包到本地仓库中

    注意层级位置

    路径.png

    4.5提交至GitHub

    最好编辑一下你的README.md。使用方法啥的...

    $ git add --all
    
    $ git commit -m'updata framework'
    
    $ git push
    
    $ git tag -1.0.0
    
    $ git push origin --tags
    

    4.6 上传CocoaPods

    • 验证.podspec文件是否合法
    pod spec lint MyFirstFramework.podspec
    

    过程中遇到的问题就不讲述了,根据错误信息百度一下。

    • 提交.podspec文件到Trunk中
    pod trunk push MyFirstFramework.podspec
    
    • 成功提示
    success

    相关文章

      网友评论

      • 爱吃麦子的鱼:你是自己的framework 开发中需要导入别人的SDK吗
      • 踏云小子:嗨。大神,我遇到pod lint时候报了下面错误,不知道是啥原因
        WARN | url: There was a problem validating the URL https://github.com/fifyrio/XYWebImage.
        但是这个地址是有的
        踏云小子:@踏云小子 我尝试更新pod,结果报这个错误,感觉应该是这个原因哎
        ```
        pod setup
        Setting up CocoaPods master repo
        [!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
        ```
        踏云小子:@我就叫Tom怎么了 文件是这样的
        ```
        Pod::Spec.new do |s|

        s.name = "XYWebImage"
        s.version = "1.0.2"
        s.summary = "asynchronous load images"
        s.homepage = "https://github.com/fifyrio/XYWebImage";
        s.license = { :type => 'MIT' }
        s.author = { "wuw" => "fifyrio@qq.com" }
        s.platform = :ios, "7.0"
        s.source = { :git => "https://github.com/fifyrio/XYWebImage.git";, :tag => s.version }
        s.source_files = "XYWebImage","XYWebImage/**/*.{h,m}"
        s.frameworks = 'UIKit','Foundation','CoreGraphics','ImageIO'

        end
        ```
        我就叫Tom怎么了:真的没有遇到过这种问题啊,你的.podspec文件方便看看么?
      • 爱吃麦子的鱼:你好,我写了一个framework里面用到了微信支付的SDK,我想问一下该怎样才能实现让这个framework支持cocoapods导入呢
        请叫我大帅666:@_安然i 我看了庆哥的创建pod及导入pod的讲解, 但讲的是创建自己的hook代码, 没有讲到怎么加入别人的SDK, 我最近在做游戏插件的项目, 需要注入别人的SDK, 我拖入别人SDK, 链接到app里面后, 注入成功, 但一运行项目就报错, 说找不到那个库, 有点无解
        爱吃麦子的鱼:@请叫我大帅73 可以让别人集成自己的framework时,同时把依赖的framework下载下来。在podfile里可以设置依赖的framework
        请叫我大帅666:我也在想这个问题, 怎么将第三方framework包在自己pod里面, 你好, 请问你解决了吗

      本文标题:提交Framework到CocoaPods

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