@@ -925,17 +925,40 @@ end
925925
926926def verify_app_store_screenshot_set! ( app_screenshot_set :, screenshots :, locale :, display_type :)
927927 expected = app_store_screenshot_expected_rows ( screenshots )
928- actual = app_store_screenshot_actual_rows ( app_screenshot_set )
929- actual_identity = actual . map { | row | { checksum : row [ :checksum ] , file_name : row [ :file_name ] } }
930- incomplete = actual . reject { | row | row [ :state ] == "COMPLETE" }
928+ timeout_seconds = app_store_screenshot_processing_timeout_seconds
929+ deadline = Time . now + timeout_seconds
930+ actual = [ ]
931931
932- return if actual_identity == expected && incomplete . empty?
932+ loop do
933+ app_screenshot_set = Spaceship ::ConnectAPI ::AppScreenshotSet . get ( app_screenshot_set_id : app_screenshot_set . id )
934+ actual = app_store_screenshot_actual_rows ( app_screenshot_set )
935+ actual_identity = actual . map { |row | { checksum : row [ :checksum ] , file_name : row [ :file_name ] } }
936+ incomplete = actual . reject { |row | row [ :state ] == "COMPLETE" }
933937
934- UI . user_error! (
935- "App Store Connect screenshot verification failed for #{ locale } #{ display_type } . " \
936- "Expected: #{ format_app_store_screenshot_rows ( expected ) } . " \
937- "Actual: #{ format_app_store_screenshot_rows ( actual ) } ."
938- )
938+ return if actual_identity == expected && incomplete . empty?
939+
940+ if actual . length > expected . length
941+ UI . user_error! (
942+ "App Store Connect screenshot verification failed for #{ locale } #{ display_type } . " \
943+ "Expected: #{ format_app_store_screenshot_rows ( expected ) } . " \
944+ "Actual: #{ format_app_store_screenshot_rows ( actual ) } ."
945+ )
946+ end
947+
948+ if Time . now >= deadline
949+ UI . user_error! (
950+ "Timed out after #{ timeout_seconds } s waiting for App Store Connect screenshot verification for #{ locale } #{ display_type } . " \
951+ "Expected: #{ format_app_store_screenshot_rows ( expected ) } . " \
952+ "Actual: #{ format_app_store_screenshot_rows ( actual ) } ."
953+ )
954+ end
955+
956+ UI . verbose (
957+ "Waiting for App Store Connect screenshot verification for #{ locale } #{ display_type } : " \
958+ "#{ format_app_store_screenshot_rows ( actual ) } ."
959+ )
960+ sleep ( APP_STORE_SCREENSHOT_PROCESSING_POLL_SECONDS )
961+ end
939962end
940963
941964def replace_app_store_screenshot_set! ( localization :, display_type :, screenshots :)
0 commit comments