# Copyright © 2017 Applause Inc. All rights reserved.
namespace :testapp do
desc "Updates test app application key" task :configure, [:setup_name, :upload_configuration_name] do |t, args| configuration = UploadConfiguration.load(args[:upload_configuration_name]) setup_name = args[:setup_name] setup = BuildConfiguration.load(setup_name) update_application_key(configuration.application_key, setup.release_configuration.plist) end desc "Builds application" task :archive, [:setup_name, :upload_configuration_name] => :configure do |t, args| setup_name = args[:setup_name] setup = BuildConfiguration.load(setup_name) output_path = setup.release_configuration.output_path export_options_plist = setup.release_configuration.export_options_plist if export_options_plist.nil? Xcode.archive_and_export_ipa setup_name, output_path else Xcode.archive_and_export_ipa setup_name, output_path, export_options_plist end end desc "Uploads test app to sdk.applause.com" task :publish, [:setup_name, :upload_configuration_name] => :archive do |t, args| upload_configuration_name = args[:upload_configuration_name] configuration = UploadConfiguration.load(upload_configuration_name) ipa_path = ipa_path(args[:setup_name]) ApplauseTool.upload_app(ipa_path, configuration.company_id, configuration.app_id, configuration.publish_email, configuration.service, upload_configuration_name) end def update_application_key(application_key, plist_path) result = `/usr/libexec/PlistBuddy -c "Set :ATCApplicationId #{application_key}" "#{plist_path}"` if result.length > 0 puts "Error: #{result}" end end def ipa_path(setup_name) config = BuildConfiguration.load(setup_name) file_name = config.release_configuration.product_name ? config.release_configuration.product_name : config.scheme archive_folder = File.join(Dir.pwd, config.release_configuration.output_path) ipa_name = file_name + ".ipa" ipa_path = File.join(archive_folder, ipa_name) return ipa_path end
end