从开源 repo 创建 CocoaPods 库

Posted

技术标签:

【中文标题】从开源 repo 创建 CocoaPods 库【英文标题】:Create CocoaPods library from opensource repo 【发布时间】:2017-10-05 02:28:20 【问题描述】:

我想在我的 ios 应用程序中使用 DEST library。我想通过 CocoaPods 包含它。

按照官方教程我这样编辑.podspec:

Pod::Spec.new do |s|
  s.name             = 'dest'
  s.version          = 'v0.8'
  s.summary          = ' One Millisecond Deformable Shape Tracking Library'

  s.description      = <<-DESC
Deformable Shape Tracking (DEST) is a C++ library providing high performance 2D shape tracking leveraging machine learning methods. The video below shows the real-time capabilities of DEST in annotating video sequences / still images with facial landmarks.
                       DESC

  s.homepage         = 'https://github.com/cheind/dest'
  s.license          =  :type => 'BSD', :file => 'LICENSE' 
  s.author           =  'cheind' => 'christoph.heindl@gmail.com' 
  s.source           =  :git => 'https://github.com/cheind/dest.git', :tag => "v0.8" 

  s.ios.deployment_target = '8.0'

  s.source_files = 'dest/Classes/**/*'

end

但是当我运行pod lib lint 时,我有:

### Command

/usr/local/bin/pod lib lint

报告

你做了什么?

您预计会发生什么?

发生了什么?

堆栈

CocoaPods : 1.1.1 Ruby : ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16] RubyGems : 2.0.14.1 Host : Mac OS X 10.12.3 (16D32) Xcode : 8.3.2 (8E2002) Git : git version 2.11.0 (Apple Git-81) Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib Repositories : master - https://github.com/CocoaPods/Specs.git @ 4076e32f9f51026e071e398117df63084ee3fbae

插件

cocoapods-deintegrate : 1.0.1 cocoapods-plugins : 1.0.0 cocoapods-search : 1.0.0 cocoapods-stats : 1.0.0 cocoapods-trunk : 1.1.1 cocoapods-try : 1.1.0

错误

``` ArgumentError - 格式错误的版本号字符串 v0.8 /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.1.1/lib/cocoapods-core/version.rb:52:in initialize' /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.1.1/lib/cocoapods-core/vendor/version.rb:199:innew' /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.1.1/lib/cocoapods-core/vendor/version.rb:199:in new' /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.1.1/lib/cocoapods-core/specification/root_attribute_accessors.rb:31:inversion' /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.1.1/lib/cocoapods-core/specification/linter.rb:109:in block in check_required_attributes' /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.1.1/lib/cocoapods-core/specification/linter.rb:108:ineach' /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.1.1/lib/cocoapods-core/specification/linter.rb:108:in check_required_attributes' /Library/Ruby/Gems/2.0.0/gems/cocoapods-core-1.1.1/lib/cocoapods-core/specification/linter.rb:50:inlint' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/validator.rb:281:in perform_linting' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/validator.rb:78:invalidate' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/command/lib/lint.rb:62:in block in run' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/command/lib/lint.rb:50:ineach' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/command/lib/lint.rb:50:in run' /Library/Ruby/Gems/2.0.0/gems/claide-1.0.1/lib/claide/command.rb:334:inrun' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/lib/cocoapods/command.rb:50:in run' /Library/Ruby/Gems/2.0.0/gems/cocoapods-1.1.1/bin/pod:55:in' /usr/local/bin/pod:23:in load' /usr/local/bin/pod:23:in'

我做错了什么?

【问题讨论】:

【参考方案1】:

版本字符串不应包含“v”。它应该是“0.8”,而不是“v0.8”。更多关于 podspec 版本规范here

【讨论】:

以上是关于从开源 repo 创建 CocoaPods 库的主要内容,如果未能解决你的问题,请参考以下文章

从 CocoaPods Specs Repo 中删除版本

手把手教你发布自己的 cocoapods 开源库

愉 | iOS CocoaPods私有库

iOS-CocoaPods私有库创建

cocoaPods第三方库使用详解

组件化开发-002-Cocoapods远程私有库使用(Private Repo)