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 ...')