错误| [iOS]文件模式:`source_files`模式与任何文件都不匹配

时间:2017-03-28 15:08:48

标签: ios iphone swift swift3 cocoapods

我将我的现有库重命名为github,我改变了一切,除了它现在没有验证我的库之外,其他工作正常 - pod spec lint KJCircularSlider.podspec for trunk push。我检查了我的文件夹结构,它看起来很完美,任何人都可以帮助我实际问题是什么? 如果你想检查文件夹结构,我的库是KJCircularSlider

这是我的podspec文件。

Pod::Spec.new do |s|
  s.name             = 'KJCircularSlider'
  s.version          = '0.1.0'
  s.summary          = 'Circular slider - to slide from 0 to 100 in circular shape'

# This description is used to generate tags and improve search results.
#   * Think: What does it do? Why did you write it? What is the focus?
#   * Try to keep it short, snappy and to the point.
#   * Write the description between the DESC delimiters below.
#   * Finally, don't worry about the indent, CocoaPods strips it!

  s.description      = <<-DESC
TODO: Add long description of the pod here.
It's circular slider, It provides circular shape to slide around from 0 to 100 percent, You can use it when you required a circular shape on slider rather than traditional iOS line shape slider.
                       DESC

  s.homepage         = 'https://github.com/KiranJasvanee/KJCircularSlider'
  # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'Kiran Jasvanee' => 'kiran.jasvanee@yahoo.com' }
  s.source           = { :git => 'https://github.com/KiranJasvanee/KJCircularSlider.git', :tag => s.version.to_s }
  # s.social_media_url = 'https://twitter.com/KiranJasvanee'

  s.ios.deployment_target = '9.0'

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

  # s.resource_bundles = {
  #   'KJCircularSlider' => ['KJCircularSlider/Assets/*.png']
  # }

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

5 个答案:

答案 0 :(得分:7)

我通过更改我的广告连播的version number解决了我的问题 我已将KJCurveSlider库重命名为KJCircularSlider,因为库中的重大更改我无法使用pod trunk push推送它。当我尝试使用pod spec lint library.podspec进行验证时,我不断收到以下错误,但我在s.source_files中提到了podspec的完美路径 - ERROR | [iOS] file patterns: The {SOURCE_FILES {1}}
然后我将版本从pattern did not match any file.更新为0.1.0,验证成功

答案 1 :(得分:0)

我也遇到过这个问题。我为s.source_files = 'Pod/Classes/**/*'设置的路径绝对正确。我得到了

  

'source_files'模式与任何文件错误

都不匹配

因为classes文件夹中没有文件。将我的库文件放入其中后,问题就解决了。

答案 2 :(得分:0)

对我来说,我尝试将Classes目录更改为Sources,以使其将来与Swift Package Manager兼容,并出现此错误。

- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.

我的podspec中的一行:

s.source_files = 'EvolvSDK/Sources/**/*'

我的文件结构如下:

|-EvolvSDK
    |-sources/
        |-Utility/
            |-Log.swift

我将源目录名称更改为类,并更改了podspec:

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

现在,它通过了验证。令人困惑的是目录是小写的,而podspec是大写的。如果有人知道这是为什么,请添加评论,因为这是我的第一个可可足,我正试图了解它们的工作原理。

答案 3 :(得分:0)

  1. 如果您将 pod 源(类)和 .podspec 嵌套在某个目录(例如 /RepositoryName/Classes)中,则可能会出现问题。所以 pod spec lint 不会找到它,不管 .podspec 文件在 /Classes 文件夹附近。 因此,您可以选择执行以下操作:

s.source_files = '**/Classes/**/*.{swift}'

所以 **/ 这部分在嵌套文件夹中进行搜索。

  1. 另一个选项是缓存pod,你可以这样做

    pod 缓存清理 YOUR_POD_NAME

或者清理 Pods 缓存目录

/Users/<#ur user name#>/Library/Caches/CocoaPods/Pods 

附言 我不认为更改 pod 的版本是正确的答案,因为它所做的可能只是强制 pod 使用新的缓存。这不是正确答案,因为您可能不想推送新版本,但仍要解决问题?

答案 4 :(得分:-1)

我清除了Pod的缓存,它起作用了!

pod cache clean YOUR_POD_NAME