sigh/lib/sigh/runner.rb in fastlane-2.54.0.beta.20170822010003 vs sigh/lib/sigh/runner.rb in fastlane-2.54.0

- old
+ new

@@ -59,43 +59,30 @@ end # Fetches a profile matching the user's search requirements def fetch_profiles UI.message "Fetching profiles..." - results = profile_type.find_by_bundle_id(Sigh.config[:app_identifier], mac: Sigh.config[:platform].to_s == 'macos') + results = profile_type.find_by_bundle_id(bundle_id: Sigh.config[:app_identifier], + mac: Sigh.config[:platform].to_s == 'macos', + sub_platform: Sigh.config[:platform].to_s == 'tvos' ? 'tvOS' : nil) results = results.find_all do |current_profile| if current_profile.valid? || Sigh.config[:force] true else UI.message("Provisioning Profile '#{current_profile.name}' is not valid, skipping this one...") false end end # Take the provisioning profile name into account - if Sigh.config[:provisioning_name].to_s.length > 0 - filtered = results.select { |p| p.name.strip == Sigh.config[:provisioning_name].strip } - if Sigh.config[:ignore_profiles_with_different_name] - results = filtered - elsif (filtered || []).count > 0 - results = filtered - end - end + results = filter_profiles_by_name(results) if Sigh.config[:provisioning_name].to_s.length > 0 # Since September 20, 2016 spaceship doesn't distinguish between AdHoc and AppStore profiles # any more, since it requires an additional request # Instead we only call is_adhoc? on the matching profiles to speed up spaceship - results = results.find_all do |current_profile| - if profile_type == Spaceship.provisioning_profile.ad_hoc - current_profile.is_adhoc? - elsif profile_type == Spaceship.provisioning_profile.app_store - !current_profile.is_adhoc? - else - true - end - end + results = filter_profiles_for_adhoc_or_app_store(results) return results if Sigh.config[:skip_certificate_verification] UI.message "Verifying certificates..." return results.find_all do |current_profile| @@ -150,9 +137,31 @@ bundle_id: bundle_id, certificate: cert, mac: Sigh.config[:platform].to_s == 'macos', sub_platform: Sigh.config[:platform].to_s == 'tvos' ? 'tvOS' : nil) profile + end + + def filter_profiles_by_name(profiles) + filtered = profiles.select { |p| p.name.strip == Sigh.config[:provisioning_name].strip } + if Sigh.config[:ignore_profiles_with_different_name] + profiles = filtered + elsif (filtered || []).count > 0 + profiles = filtered + end + profiles + end + + def filter_profiles_for_adhoc_or_app_store(profiles) + profiles.find_all do |current_profile| + if profile_type == Spaceship.provisioning_profile.ad_hoc + current_profile.is_adhoc? + elsif profile_type == Spaceship.provisioning_profile.app_store + !current_profile.is_adhoc? + else + true + end + end end def certificates_for_profile_and_platform case Sigh.config[:platform].to_s when 'ios', 'tvos'