module QCloudHive::HivePod

Public Class Methods

configPostInstaller(installer) click to toggle source
# File lib/qcloudhive/pod_helper.rb, line 16
def HivePod.configPostInstaller(installer)
  installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['ENABLE_BITCODE'] = Config.bitcodeEnable ? "YES" : "NO"
      end
  end
end
findPodspecs(path) click to toggle source
# File lib/qcloudhive/pod_helper.rb, line 34
def HivePod.findPodspecs(path)
  podspecs = []
  path = Pathname(path)
  path.entries.each { |entry|
    if (entry.extname == '.podspec' || entry.to_s.end_with?('.podspec.json'))
      if path.basename.to_path == "Local Podspecs"
        next
      end
      podspecs.push(path.join(entry))
    end
  }
  if podspecs.count != 0
    return podspecs
  else
    path.entries.each {  |entry|
      next if entry.to_path == "."
      next if entry.to_path == ".."
      next if entry.to_path == ".git"
      next if entry.to_path == ".repo"
      if File.directory?(path.join(entry))
        subpath = path.join(entry)
        ps = findPodspecs(subpath)
        podspecs = podspecs + ps
      end
    }
  end
  return podspecs
end
installDependencies(target, podfilePath) click to toggle source
# File lib/qcloudhive/pod_helper.rb, line 83
def HivePod.installDependencies(target, podfilePath)
  Config.setup()
  Config.loadShareConfig
  L.info("target is nil #{target}")
  if target.nil? or target == "nil"
    return
  end
  Config.setup
  xcodeProject  = QCloudHive.xcodeprojectByPath(Pathname.new(podfilePath).parent.to_s)
  if  xcodeProject.nil?
    ERROR "该Podfile文件没有对应的Xcode工程 #{podfilePath}"
  end
  if xcodeProject.hiveSpecModules.nil?
    puts "nil!!!"
  end
  xcodeProject.hiveSpecModules.each { |spec|
    # local spec
    if not spec.path.nil?
      relativePath = Pathname.new(spec.path).dirname.relative_path_from(Pathname.new(podfilePath).parent)
      target.store_pod(spec.name,:path=>relativePath.to_s)
    elsif Config.buildFromCommit && (not spec.commit.nil?)
      target.store_pod(spec.name,:git=>spec.sourceURL, :commit=>spec.commit)
    else
      target.store_pod(spec.name,:git=>spec.sourceURL, :branch=>spec.branch)
    end
  }
  xcodeProject.saveHiveModulesConfig
  L.info("Config #{Config}")
  L.info("Config use frameworks #{Config.useFrameworks}")
  if Config.useFrameworks
    target.use_frameworks!
    L.info("Target use frameworks")
  end
  L.info "save projects"
end
podspecs() click to toggle source
# File lib/qcloudhive/pod_helper.rb, line 62
def HivePod.podspecs
  if @@podspecs.nil?
    podspecs = findPodspecs(Config.projectRootDirectory)
    if not podspecs.nil?
      @@podspecs = podspecs.map { |specPath|
        name = nil
        basenamestr = specPath.basename.to_s
        extenname = specPath.extname
        if extenname == ".json"
          extenname = ".podspec.json"
        end
        if extenname.length>0 && basenamestr.end_with?(extenname)
          name = basenamestr[0,basenamestr.length - extenname.length]
        end
        HiveSpec.new(name, specPath)
      }
    end
  end
  return @@podspecs
end
sources() click to toggle source
# File lib/qcloudhive/pod_helper.rb, line 12
def HivePod.sources()
  Pod::Config::instance.sources_manager.aggregate.sources
end