基础iOS开发-fj

配置podspec

2016-12-25  本文已影响83人  丐帮头
Framework.png
将自己的framework提交给cocoapods时,配置podspec这一步非常重要,但是在验证podspec时很容易出现各种错误,所以我就把它记录下来,给后面的小伙伴提供参考,有什么地方不正确,还请各位小伙伴拍砖。下面就是我的podspec配置:
  Pod::Spec.new do |s|
  s.name = "libSDK"
  s.version = "1.0.0"
  s.summary = "libSDK is a staticlib SDK"
  s.homepage = "https://github.com/xxx/libSDK"
  s.license = 'MIT'
  s.author = { 'xxx' => 'xxx@qq.com' }
  s.platform = :ios, '8.0'
  s.source = { :git => 'https://github.com/xxx/libSDK.git', :tag => s.version }
  s.framework  = 'UIKit'
  s.vendored_frameworks = 'MySDK.framework'
  s.requires_arc = true
  s.dependency 'AFNetworking'
  s.dependency 'SDWebImage'
  end

  上面少一个非常重要的参数source_files,因为我们是framework提交,所以不需要。如果是工程提交的话,一般都要写这个参数,cocoaPods根据它来克隆文件,来看一个例子:
      |——MySDK.xcodeproj
      |——MySDK
      |—————MySDK.h
      |—————MySDK.m

  这个例子中包含.h/.m文件,为达到目的,我们会将source_files设置成:'MySDK/*****.{h,m}',星号*****表示包含任意文件。当星号位于文件类型前时,表明包括所有该类型的文件。
  假设你想要在 Pod 下载时包含所有位于 /FantasticView 下的文件,只需要将文件名字和类型用星号代替即可:
  'MySDK/*****'
  这样就涵盖了所有,甚至是其他目录。为了限制文件类型,你也可以使用如下语句:
  'MySDK/*****.{h,m,plist}'
  在这个例子中,将会涵盖所有的 h,m 和 plist 文件。
验证podspec文件
  编辑完podspec文件后,需要验证一下这个文件是否可用,如果有任何WARNING或者ERROR都是不可以的,需要修改错误,知道验证通过podspec文件才可用,以下命令验证:pod lib lint,你可能会得到下列问题:

  1,各种语法糖错误,根据提示去修改就可以了,主要就是单引号与双引号的问题

  2, - MySDK (1.0.0)
     WARN  | description: The description is shorter than the summary.
     WARN  | url: There was a problem validating the URL https://github.com/xxx/MySDK.
     警告说的很直接,填写summary

  3, echo"2.3">> .swift-version
      执行命令:echo"3.0">> .swift-version

  4, 提交framework与工程不同的地方是:s.vendored_frameworks = 'MySDK.framework', 因为我们要提交到cocoa pods的是.framework静态库,所以这个字段必不可少

  5, 如果用到了第三方可以比如:AFNetworking,就要在s.dependency 'AFNetworking', '~> 2.6.1'
     以上就是在配置中遇到的问题。

  6, Failed to locate a valid instance of CoreSimulatorService in the bootstrap.  Adding it now.
     ') during validation
    执行命令:launchctl remove com.apple.CoreSimulator.CoreSimulatorService || true
打标签
  git tag '1.0.0'
  git push --tags
提交cocoa pods
  pod trunk push MySDK.podspec

  trunk过程中可能遇到下面的问题:
  error: RPC failed; curl 56 SSLRead() return error -36
  fatal: The remote end hung up unexpectedly
  在网上查到的解决办法,在终端输入以下命令:
  sudo xcode-select -switch /Applications/Xcode.app/Contents/Developers
到这里如果成功就搜索的到,那么就是说可以成功使用了
  pod search MySDK

  可能出现搜索不到的问题,执行命令:rm ~/Library/Caches/CocoaPods/search_index.json
上一篇下一篇

猜你喜欢

热点阅读