美文网首页
使用Cocoapods集成Framework并上传

使用Cocoapods集成Framework并上传

作者: 神魔狼 | 来源:发表于2017-09-06 10:40 被阅读156次

    目前,公司正在做静态库的封装工作,期间遇到不少坑,所以总结了一些关于集成遇到的问题和解决办法。本文包含从创建framework项目开始,到添加测试Demo,再到framework打包,最后到上传到Pods,都有涉及,期间有些问题还没解决,希望看到的朋友能一起解决。话不多少,上干货...

    1. 请确保已经正确安装CocoaPods环境,这里不多说,自己去网上找教程很简单。
    2. 打开终端,先cd到指定目录下,再执行pod lib create LCFramework, 接下来需要确认5个问题,如下:
    0AA87215-9050-44D1-A9BF-1F509C532061.png

    创建出来的工程目录如下:

    2.png
    3. 打开 Core-JJSNetworking.podspec 文件,并修改配置信息,如下:
    Pod::Spec.new do |s|
    #SDK 名称
    s.name             = 'LCFramework'
    #SDK 版本
    s.version          = '0.0.1'
    s.summary          = 'A virtual card manage SDK .' 
    s.description = <<-DESC
                        An optional longer description of BZLib
                        * Markdown format.
                        * Don't worry about the indent, we strip it!
                    DESC
    s.homepage         = 'http://172.18.80.22/iOS/LCFrameworkDemo'
    s.license          = 'MIT'
    s.author           = { 'lcc152' => 'lcc152@zcsmart.com' }
    #这里写自己的项目所在地址,一般在我们以打tag的方式来标记
    s.source           = { :git => 'http://172.18.80.22/iOS/LCFrameworkDemo.git', :tag => "v0.0.1" }
    s.ios.deployment_target = '8.0'
    s.requires_arc = true
    #表示类库的源文件存放目录(从上面的目录结构大家可以看到我们的framework源文件都是放在Classes文件夹下,
    #这里是可以修改的,如果你想改的话,随便放在哪里都行,只要在podfile文件中指定好路径都行。我这里就和classes同级添加了新的文件夹Library)
    s.source_files = 'LCFramework/Classes/**/*','LCFramework/Library/include/*'
    # 资源文件 逗号后面不能有空格😓
    s.resource_bundles = {
        'LCFramework' => ['LCFramework/Assets/*.{jpg,pack,png}']
    }
    
    # 暴露出去的头文件
    s.public_header_files = 'LCFramework/Classes/public/*.h'
    # pch文件
    s.prefix_header_file = 'LCFramework/Classes/project/LCPrefixHeader.pch'
    # 依赖的Library
    s.ios.vendored_libraries = 'LCFramework/Library/lib/libpos.a'
    # 依赖的系统库 (包含第三方依赖的)
    s.frameworks = 'UIKit','Foundation','SystemConfiguration','CoreGraphics','MobileCoreServices','Security'
    # 依赖的三方库
    s.dependency 'AFNetworking'
    
    # 依赖的Framework
    #s.ios.vendored_frameworks = 'LCFramework/Library/lib/*.framework'
    end
    
    4.然后把要封装的SDK文件 放到对应的目录,再切换到Example目录下,执行
    Pod install
    

    结构目录如下:

    屏幕快照 2017-09-06 上午10.14.50.png

    这里LCFileManage是我要封装的sdk,CCKSControl和CSCSoftcardUtil以及libpos.a是一套静态库,INIT.pack是资源文件,LCPrefixHeader是pch文件,这样一个基本的SDK模型结构就出来了

    5.全部弄完以后就可以上传到Git了,并且记得打个tag,以供等下打包静态库使用。
    6.打包之前使用 pod lib lint 验证类库是否符合 pod 的要求,可以使用 --allow-warnings 来忽略一些警告。(注意要切换到根目录)
    pod lib lint LCFramework.podspec --allow-warnings
    

    如果显示passed validation就可以了

    7.打包。此时你需要安装一个 CocoaPods 打包插件
    sudo gem install cocoapods-packager
    
    8.然后就可以愉快的打包了
    pod package LCFramework.podspec --force
    

    如果命令后面加条尾巴 --library 则表示打包成 .a 文件,如果不带,则会打包成 .framework 文件。 --force会覆盖之前已存在的文件。完成了就可以在目录下看到LCFramework-0.0.1,里面就是你想要的Framework了。

    9.如果你还想上传到cocoapods接着执行
    pod trunk push LCFramework.podspec
    

    相关文章

      网友评论

          本文标题:使用Cocoapods集成Framework并上传

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