配置podspec

作者: 丐帮头 | 来源:发表于2016-12-25 17:59 被阅读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

    相关文章

      网友评论

        本文标题:配置podspec

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