bin/nixenvironment in nixenvironment-0.0.37 vs bin/nixenvironment in nixenvironment-0.0.38

- old
+ new

@@ -63,12 +63,13 @@ c.option '--config NAME', String, 'Select configuration' c.option '--ipa TYPE', String, 'Select sign (ipa, resigned_ipa_for_device, resigned_ipa_for_adhoc_distribution or resigned_ipa_for_appstore)' c.option '--ci_build', 'Define NIXENV_CI_BUILD environment variable' c.option '--unity TARGET PLATFORM', String, 'Select target platform for unity build (ios or android)' c.option '--ndsym', 'Disable .dsym generation for ios project' + c.option '--icon_tagger MODE', String, 'Set XcodeIconTagger mode (full, short, off)' c.action do |args, options| - options.default :config => 'Debug', :ipa => 'ipa' + options.default :config => 'Debug', :ipa => 'ipa', :icon_tagger => 'full' need_to_build_ios = true if options.unity and options.unity.length > 0 need_to_build_ios, root_working_dir, need_chdir_to_root_working_dir = unity_build(options.unity) @@ -78,11 +79,11 @@ begin read_config_settings enable_ci_build(options.ci_build) supplement_config_settings(options.config) prebuild(options.config) - build(options.config, options.ipa, options.ndsym) + build(options.config, options.ipa, options.ndsym, options.icon_tagger) restore_info_plist rescue raise # re-rise exception but chdir to root_working_dir in ensure block first if needed ensure if need_chdir_to_root_working_dir and root_working_dir @@ -398,27 +399,23 @@ ") end def prebuild(config) save_revision = File.join(BUILD_SCRIPTS_PATH, 'SaveRevision.sh') - tag_icons = File.join(BUILD_SCRIPTS_PATH, 'XcodeIconTagger/tagIcons.sh') system("#{save_revision}") abort unless working_copy_is_clean? backup_info_plist save_build_env_vars update_info_plist(config) - - # TODO: rewrite tagIcons.sh - # system("#{tag_icons} #{@config_settings['ICONS_PATH']}") end -def build(config, ipa, ndsym) +def build(config, ipa, ndsym, icon_tagger) build = File.join(BUILD_SCRIPTS_PATH, 'Build.py') build_success = nil configuration_build_dir = @config_settings['CONFIGURATION_BUILD_DIR'] @@ -464,10 +461,25 @@ unless build_success restore_info_plist abort('Build error!') end + if config == 'Release' + p('IconTagger: configuration is Release. Skipping...') + else + case icon_tagger + when 'full' + tag_icon(false) + when 'short' + tag_icon(true) + when 'off' + p('IconTagger is disabled. Skipping...') + else + p("Unknown IconTagger mode: '#{icon_tagger}'. Skipping...") + end + end + case ipa # create .ipa file from last built app product when 'ipa' make = File.join(BUILD_SCRIPTS_PATH, 'MakeIPA.sh') # resign last built app product with iPhone Developer profile and package it into .ipa file @@ -536,9 +548,29 @@ else abort("Error: Unknown unity target platform '#{unity}'!") end return need_to_build_ios, root_working_dir, need_chdir_to_root_working_dir +end + +def tag_icon(short_version) + tagger_directory = File.join(BUILD_SCRIPTS_PATH, 'XcodeIconTagger') + utility = File.join(tagger_directory, 'IconTagger') + plist_path = @unescaped_product_settings_path + version = %x[ /usr/libexec/PlistBuddy -c 'Print CFBundleShortVersionString' '#{plist_path}' ].strip! + monotonic_revision = %x[ source _last_revision.sh && echo ${MONOTONIC_REVISION} ].strip! + style = short_version ? 'OneLine' : 'TwoLine' + mask_path = File.join(tagger_directory, "masks/#{style}Mask.png") + icons_dir = File.join(Dir.pwd, @config_settings['ICONS_PATH']) + app_product = File.join(@config_settings['BUILT_PRODUCTS_DIR'], @config_settings['EXECUTABLE_NAME']) + '.app' + + system("#{utility} --shortVersion=#{version}\ + --buildNumber=#{monotonic_revision}\ + --style=#{style}\ + --maskPath=\"#{mask_path}\"\ + --plist=\"#{plist_path}\"\ + --sourceIconsPath=\"#{icons_dir}\"\ + --destinationIconsPath=#{app_product}") end def backup_info_plist p('Backuping Info.plist ...')