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

2018-06-12  本文已影响10人  xiaoleiiOS

今天终于将自己的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后,验证成功了,很是心累呀。

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

上一篇下一篇

猜你喜欢

热点阅读