Class: Pod::ExternalSources::PathSource

Inherits:
AbstractExternalSource
  • Object
show all
Defined in:
lib/cocoapods-bb-bin/native/path_source.rb

Overview

Provides support for fetching a specification file from a path local to the machine running the installation.

Instance Method Summary collapse

Instance Method Details

#normalized_podspec_path(declared_path) ⇒ Object

[View source]

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/cocoapods-bb-bin/native/path_source.rb', line 11

def normalized_podspec_path(declared_path)
  extension = File.extname(declared_path)

  if extension == '.podspec' || extension == '.json'
    path_with_ext = declared_path
  else
    # 默认先从 binary podspec 找起,因为 binary podspec 的 subspec 可能比 code podspec 多
    # 这里可能出现 code subspec 和 binary subspec 对应不上的情况,导致 lint 失败
    # 所以不要在 code podspec 同一目录下保留 binary podspec
    path_with_ext = Specification::VALID_EXTNAME
                    .map { |extname| "#{declared_path}/#{name}#{extname}" }
                    .find { |file| File.exist?(file) } || "#{declared_path}/#{name}.podspec"
  end

  UI.message "获取的 podspec 路径为 `#{path_with_ext}`"

  podfile_dir = File.dirname(podfile_path || '')

  File.expand_path(path_with_ext, podfile_dir)
end