Podspec 验证错误 - 文件模式:规范为空

Posted

技术标签:

【中文标题】Podspec 验证错误 - 文件模式:规范为空【英文标题】:Podspec validation error - File Patterns: The spec is empty 【发布时间】:2016-09-21 09:25:05 【问题描述】:

我正在尝试再次创建我的第一个 pod。我很久以前试过这个,我记得一年前,那次我也遇到了类似的错误。

以下代码显示了我的project.podspec 文件的样子,我不知道我在这里错过了什么,CocoaPods 只是对我大喊大叫,说podspec 文件中有一些问题。

Pod::Spec.new do |s|
  s.name = 'MyProject'
  s.version = '0.1.0'
  s.platform = :ios, '9.0'
  s.license = 'MIT'
  s.summary = 'Something Blah Blah'
  s.homepage = 'https://github.com/alvinvarghese/MyProject'
  s.author =  'Alvin Varghese' => 'my email' 
  s.source =  :git => 'https://github.com/alvinvarghese/MyProject.git', :tag => s.version.to_s 

  s.description = 'Blah Blah Blah BlahBlah BlahBlah BlahBlah BlahBlah Blah Blah Blah'      \
                  'Blah Blah'
  s.frameworks = 'UIKit', 'Foundation'
  s.social_media_url = 'https://twitter.com/aalvinv'
  s.ios.deployment_target = '9.0'
  # s.resource_bundles = 
  #   'dummy' => ['dummy/Assets/*.png']
  # 

  s.public_header_files = 'Pod/Classes/**/*.h'
  s.frameworks = 'UIKit', 'Foundation'
  # s.dependency 'AFNetworking', '~> 2.3'

end

我什至不知道它是如何工作的,当我运行 pod trunk push --allow-warnings 时,我得到了这个错误。

Alvin-The-Robot:MyProject Alvin$ pod trunk push --allow-warnings

[!] Found podspec `MyProject.podspec`
Updating spec repo `master`
Validating podspec
 -> MyProject (0.1.0)
    - ERROR | [iOS] File Patterns: The MyProject (0.1.0) spec is empty (no source files, resources, resource_bundles, preserve paths, vendored_libraries, vendored_frameworks, dependencies, nor subspecs).
    - ERROR | [iOS] unknown: Encountered an unknown error (The `MyProject` pod failed to validate due to 1 error:
    - ERROR | [iOS] File Patterns: The MyProject (0.1.0) spec is empty (no source files, resources, resource_bundles, preserve paths, vendored_libraries, vendored_frameworks, dependencies, nor subspecs).

) during validation.

[!] The spec did not pass validation, due to 2 errors.

让我知道你的想法,我做错了什么吗?我错过了什么吗?

还有其他一些可能有用的东西。 git repo 有相同的 0.1.0 标签。

Alvin-The-Robot:MyProject Alvin$ git tag
0.1.0

提前谢谢你们。

【问题讨论】:

对于来源:https://github.com/alvinvarghese/MyProject.git 而不是https://github.com/alvinvarghese/MyProject ? @Larme 抱歉,这是我写问题时的输入错误。实际上它在 podspec 文件中有后缀 .git 。感谢您指出,我已经更新了问题。 你的 github 仓库有“0.1.0”标签吗? 【参考方案1】:

您似乎忘记包含 source_files 定义(或 vendored_frameworks,如果您正在制作闭源 pod)。您应该在 podspec 中添加如下一行:

s.source_files = "MyProject/**/*.h,m"

请参阅 this 以获取最小工作 podspec 的示例。

【讨论】:

让我检查一下,等一下。 - 错误 | [iOS] 文件模式:source_files 模式与任何文件都不匹配。 - 错误 | [iOS] 文件模式:public_header_files 模式与任何文件都不匹配。 你这里的“ExampleLib”应该换成我的pod名称吧?这就是我所做的,同样的错误。 它应该是一个匹配您的文件相对于 repo 根目录的位置的模式。 source_files 的语法参考在这里:guides.cocoapods.org/syntax/podspec.html#tab_source_files。另请参阅我的更新答案 是的,我认为这解决了与 podspec 文件相关的问题,现在有些事情发生了。告诉我在 GitHub CocoaPods 中添加一个新问题。

以上是关于Podspec 验证错误 - 文件模式:规范为空的主要内容,如果未能解决你的问题,请参考以下文章

Podspec 验证但未安装文件

尝试运行“pod trunk push [cocoapod].podspec”时出错

podspec书写规范

具有每个架构标志的 CocoaPods podspec

Cocoapods - podspec 验证但不能被推送到 repo

CocoaPods:带有子规范的规范 lint 丢弃了父规范?