module Depcheck::Finder

Public Class Methods

find_derived_data_path(project, workspace, scheme) click to toggle source
# File lib/depcheck/finder.rb, line 4
def self.find_derived_data_path(project, workspace, scheme)
  arg = if project
          "-project \"#{project}\""
        else
          "-workspace \"#{workspace}\""
        end

  arg+= " -scheme \"#{scheme}\"" if scheme

  build_settings = `xcodebuild #{arg} -showBuildSettings build CODE_SIGNING_ALLOWED=NO CODE_SIGNING_REQUIRED=NO`
  raise StandardError until $?.success?

  derived_data_path = build_settings.match(/ OBJROOT = (.+)/)[1]
  project_name = build_settings.match(/ PROJECT_NAME = (.+)/)[1]
  target_name = build_settings.match(/ TARGET_NAME = (.+)/)[1]

  "#{derived_data_path}/#{project_name}.build/**/#{target_name}*.build"
end
find_swiftdeps(project, workspace, scheme) click to toggle source
# File lib/depcheck/finder.rb, line 23
def self.find_swiftdeps(project, workspace, scheme)
  derived_data_path = find_derived_data_path(project, workspace, scheme)
  swiftdeps = Dir.glob("#{derived_data_path}/**/*.swiftdeps") if derived_data_path

  if swiftdeps.nil? || swiftdeps.empty?
    raise StandardError, 'No derived data found. Please make sure the project was built.'
  end

  swiftdeps
end