b0VIM 8.0IZ^: joshJoshs-MacBook-Pro.local~josh/Projects/fastlane/fastlane/fastlane_core/lib/fastlane_core/build_watcher.rb 3210#"! UtpKLadGK:8 Y 3 ' & Y M L e d H 8 r ) ]f/-#"uiAiF end.join("\n") "#{build.app_version}(#{build.version}) for #{build.platform} - #{build.processing_state}" error_builds = matched_builds.map do |build| if matched_builds.size > 1 # This should never happen but need to inform the user if it does # Raise error if more than 1 build is returned ) platform: platform build_number: watched_build_version, version: watched_app_version, app_id: app_id, matched_builds = Spaceship::ConnectAPI::Build.all( watched_build_version = remove_version_leading_zeros(version: watched_build_version) watched_app_version = remove_version_leading_zeros(version: watched_app_version) # Get build deliveries (newly uploaded processing builds) def matching_build(watched_app_version: nil, watched_build_version: nil, app_id: nil, platform: nil) end return version.instance_of?(String) ? version.split('.').map { |s| s.to_i.to_s }.join('.') : version def remove_version_leading_zeros(version: nil) # Remove leading zeros ( https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102364 ) private end end sleep(poll_interval) end end return matched_build else return matched_build.to_testflight_build if return_spaceship_testflight_build if matched_build && (return_when_build_appears || matched_build.processed?) # so here we may choose to skip the full processing of the build if return_when_build_appears is true # having a build resource appear in AppStoreConnect (matched_build) may be enough (i.e. setting a changelog) # block the worker running this task until it is completed. In some cases, # Processing of builds by AppStoreConnect can be a very time consuming task and will report_status(build: matched_build) end showed_info = true UI.important("Read more information on why this build isn't showing up yet - https://github.com/fastlane/fastlane/issues/14997") if matched_build.nil? && !showed_info matched_build = matching_build(watched_app_version: app_version, watched_build_version: build_version, app_id: app_id, platform: platform) loop do showed_info = false UI.message("Waiting for processing on... app_id: #{app_id}, app_version: #{app_version}, build_version: #{build_version}, platform: #{platform}") platform = Spaceship::ConnectAPI::Platform.map(platform) if platform end UI.deprecated(":strict_build_watch is no longer a used argument on FastlaneCore::BuildWatcher.") if strict_build_watch # Warn about strict_build_watch being removed in the future end app_version = train_version UI.deprecated(":train_version is no longer a used argument on FastlaneCore::BuildWatcher. Please use :app_version instead.") if train_version # Warn about train_version being removed in the future def wait_for_build_processing_to_be_complete(app_id: nil, platform: nil, train_version: nil, app_version: nil, build_version: nil, poll_interval: 10, strict_build_watch: false, return_when_build_appears: false, return_spaceship_testflight_build: true) # @return The build we waited for. This method will always return a build class << self class BuildWatchermodule FastlaneCorerequire_relative 'ui/ui'require 'spaceship/connect_api'ad: rfe87, v end end end end end UI.message("Waiting for the build to show up in the build list - this may take a few minutes (check your email for processing issues if this continues)") else UI.success("Successfully finished processing the build #{build.app_version} - #{build.version} for #{build.platform}") elsif build && build.processed? UI.message("Waiting for App Store Connect to finish processing the new build (#{build.app_version} - #{build.version}) for #{build.platform}") if build && !build.processed? def report_status(build: nil) end return matched_build matched_build = matched_builds.first end UI.crash!(error_message) error_message = "FastlaneCore::BuildWatcher found more than 1 matching build: \n#{error_builds}"