module Xcodeproj::Project::ProjectHelper
def self.common_build_settings(type, platform = nil, deployment_target = nil, target_product_type = nil, language = :objc)
-
(Hash)- The common build settings
Parameters:
-
language(Symbol) -- -
target_product_type(Symbol) -- -
deployment_target(String) -- -
platform(Symbol) -- -
type(Symbol) --
def self.common_build_settings(type, platform = nil, deployment_target = nil, target_product_type = nil, language = :objc) target_product_type = (Constants::PRODUCT_TYPE_UTI.find { |_, v| v == target_product_type } || [target_product_type || :application])[0] common_settings = Constants::COMMON_BUILD_SETTINGS # Use intersecting settings for all key sets as base settings = deep_dup(common_settings[:all]) # Match further common settings by key sets keys = [type, platform, target_product_type, language].compact key_combinations = (1..keys.length).flat_map { |n| keys.combination(n).to_a } key_combinations.each do |key_combination| settings.merge!(deep_dup(common_settings[key_combination] || {})) end if deployment_target case platform when :ios settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target settings['CLANG_ENABLE_OBJC_WEAK'] = 'NO' if deployment_target < '5' when :osx settings['MACOSX_DEPLOYMENT_TARGET'] = deployment_target settings['CLANG_ENABLE_OBJC_WEAK'] = 'NO' if deployment_target < '10.7' when :tvos settings['TVOS_DEPLOYMENT_TARGET'] = deployment_target when :watchos settings['WATCHOS_DEPLOYMENT_TARGET'] = deployment_target end end settings end