美文网首页
创建自己的CocoaPods仓库,podspec文件验证,遇到的

创建自己的CocoaPods仓库,podspec文件验证,遇到的

作者: xiaoleiiOS | 来源:发表于2018-06-12 17:34 被阅读10次

    今天终于将自己的SDK发布上去了,感觉还是挺好操作的,只是.podspec文件验证,会出现很多各种各样的错误,还是得耐心的去查找问题。使用--verbose,查看问题详情,应该都能找出问题所在。之前测试上传了多次,有公共库,也有私有库,这次终于把完整的SDK,各个模块,公共模块一起上传成功,还是比较开心的。

    现在记录一下这次上传遇到的问题吧,查找了好几天才找出原因,并修改成功。我们SDK是按功能分模块打包为framework,再按每个模块为subspec,一起上传CocoaPods仓库。现在看一下podspec文件配置吧。

    # 设置默认的模块,如果在pod文件中导入pod项目没有指定子模块,导入的是这里指定的模块
    s.default_subspec = 'TGameFramework'
    
    # 定义一个核心模块,用户存放抽象的接口、基类以及一些公用的工具类和头文件
    s.subspec 'TGameFramework' do |subspec|
        # 配置系统Framework
        subspec.frameworks = 'UIKit', 'Foundation'
        subspec.resource = 'TGameFramework/Assets/*.lproj','TGameFramework/Assets/TGameFramework.bundle'
        #你的SDK路径
        subspec.vendored_frameworks = 'TGameFramework/Classes/*.framework'
    end
    
    # 登录管理模块
    s.subspec 'TGameSDKLogin' do |login|
        # 添加依赖第三方的framework
        login.vendored_frameworks = 'TGameSDKLogin/*.framework'
        # 依赖的核心模块
        login.dependency 'TGameSDK/TGameFramework'
        # 依赖其他第三方
        login.dependency 'VK-ios-sdk'
    end
    

    这样使用的时候就可以像下面这样导入到项目中,方便集成。

        pod 'TGameSDK'
        pod 'TGameSDK/TGameSDKLogin'
    

    具体上传步骤就不记录了,网上好多,只记录一下关键点,和遇到的问题。

    上传podspec和各模块代码到GitHub,客户端和命令上传这个看个人喜好。完后上传tag,必须和podspec中的版本号配置相同。

      git tag 1.0.0
      git push origin --tags
    

    之后就可以来验证podspec文件了,这里是最容易出问题的地方。

    pod spec lint 框架名称.podspec 
    

    在后边可以加命令,下面说明一下命令作用:
    1、--verbose:打印错误详情,当出现error的时候

    pod spec lint 框架名称.podspec --verbose
    

    耐心看日志,查找问题原因。
    2、--use-libraries:当你的库中有framework或.a文件,就加上吧。
    3、--allow-warnings:有事有警告也有可能验证不通过,可以加上这个。

    我一般都这样玩。。。😄

    pod spec lint 框架名称.podspec --verbose --use-libraries --allow-warnings
    

    注意⚠️:有错误一定耐心看日志,遇到没有直接提示的错误,可以搜索一下BUILD FAILURES,完后就百度、Google解决方法喽!!!
    这次我遇到了一个问题,日志特别多,只看到一个error,

    xcodebuild: Returned an unsuccessful exit code.
    

    网上查了好久,没能解决,之后突然发现有一个BUILD FAILURES,提示我framework中有个类有问题,查找原因,是因为我这个类是.mm文件。这里我还是没搞清楚,为什么.mm会报错。找了一下,类里也没有C++的方法,改为.m后,验证成功了,很是心累呀。

    先到这里,有时间在写,干活去!!!

    相关文章

      网友评论

          本文标题:创建自己的CocoaPods仓库,podspec文件验证,遇到的

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