pilot/lib/pilot/build_manager.rb in fastlane-2.119.0.beta.20190322200024 vs pilot/lib/pilot/build_manager.rb in fastlane-2.119.0.beta.20190323200019

- old
+ new

@@ -32,11 +32,11 @@ package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(app_id: app.apple_id, ipa_path: config[:ipa], package_path: dir, platform: platform) - transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider]) + transporter = transporter_for_selected_team(options) result = transporter.upload(app.apple_id, package_path) unless result UI.user_error!("Error uploading ipa file, for more information see above") end @@ -208,9 +208,28 @@ !options[:localized_app_info].nil? end def should_update_localized_build_information?(options) !options[:localized_build_info].nil? + end + + # If itc_provider was explicitly specified, use it. + # If there are multiple teams, infer the provider from the selected team name. + # If there are fewer than two teams, don't infer the provider. + def transporter_for_selected_team(options) + generic_transporter = FastlaneCore::ItunesTransporter.new(options[:username], nil, false, options[:itc_provider]) + return generic_transporter unless options[:itc_provider].nil? && Spaceship::Tunes.client.teams.count > 1 + + begin + team = Spaceship::Tunes.client.teams.find { |t| t['contentProvider']['contentProviderId'].to_s == Spaceship::Tunes.client.team_id } + name = team['contentProvider']['name'] + provider_id = generic_transporter.provider_ids[name] + UI.verbose("Inferred provider id #{provider_id} for team #{name}.") + return FastlaneCore::ItunesTransporter.new(options[:username], nil, false, provider_id) + rescue => ex + UI.verbose("Couldn't infer a provider short name for team with id #{Spaceship::Tunes.client.team_id} automatically: #{ex}. Proceeding without provider short name.") + return generic_transporter + end end def distribute_build(uploaded_build, options) UI.message("Distributing new build to testers: #{uploaded_build.train_version} - #{uploaded_build.build_version}")