class Phoenx::TestTargetBuilder

Public Class Methods

new(main_target, project, target_spec, project_spec, main_target_spec, main_target_frameworks_files) click to toggle source
Calls superclass method Phoenx::TargetBuilder::new
# File lib/phoenx/use_cases/generate_target.rb, line 340
def initialize(main_target, project, target_spec, project_spec, main_target_spec, main_target_frameworks_files)
        super(project, target_spec, project_spec)
        @main_target = main_target
        @main_target_spec = main_target_spec
        @main_target_frameworks_files = main_target_frameworks_files
end

Public Instance Methods

build() click to toggle source
# File lib/phoenx/use_cases/generate_target.rb, line 347
def build
        @target = @project.new(Xcodeproj::Project::PBXNativeTarget)
        @project.targets << @target
        @target.name = @target_spec.name
        @target.product_name = @target_spec.name
        @target.product_type = Xcodeproj::Constants::PRODUCT_TYPE_UTI[:unit_test_bundle]
        @target.build_configuration_list = Xcodeproj::Project::ProjectHelper.configuration_list(@project, @main_target_spec.platform, @main_target_spec.version)
        product_ref = @project.products_group.new_reference(@target_spec.name + '.' + XCTEST_EXTENSION, :built_products)
        product_ref.include_in_index = '0'
        product_ref.set_explicit_file_type
        @target.product_reference = product_ref
        @target.build_phases << @project.new(Xcodeproj::Project::PBXSourcesBuildPhase)
        @target.build_phases << @project.new(Xcodeproj::Project::PBXFrameworksBuildPhase)
        @target.build_phases << @project.new(Xcodeproj::Project::PBXResourcesBuildPhase)
        self.add_sources
        self.add_config_files
        self.add_frameworks_and_libraries
        self.add_system_dependencies
        self.add_build_phase_scripts
        self.add_resources
        self.add_support_files
        copy_frameworks = @target.new_copy_files_build_phase "Embed Frameworks"
        copy_frameworks.symbol_dst_subfolder_spec = :frameworks
        frameworks_group = @project.main_group.find_subpath(FRAMEWORKS_ROOT, false)
        self.framework_files.each do |file|
                build_file = copy_frameworks.add_file_reference(file)
                build_file.settings = ATTRIBUTES_CODE_SIGN_ON_COPY
        end
        @main_target_frameworks_files.each do |file|
                build_file = copy_frameworks.add_file_reference(file)
                build_file.settings = ATTRIBUTES_CODE_SIGN_ON_COPY
        end
        # Add target dependency.
        @target.add_dependency(@main_target)
        @target.frameworks_build_phase.add_file_reference(@main_target.product_reference)
        self.configure_target
end
target() click to toggle source
# File lib/phoenx/use_cases/generate_target.rb, line 385
def target
        return @target
end