From dd1213c5a8b4e69b80b3842038fc2d67b8dd5e1d Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Sat, 31 Oct 2026 20:30:32 +0100 Subject: [PATCH] Ignore benign altool CDUploaderStateInfoResumeFilePath error in fastlane Xcode 27.2's altool logs an ERROR line about the uploader resume file even when the upload succeeds, which made upload_to_testflight fail before setting the changelog and distributing to external groups. --- fastlane/Fastfile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 195fbfb9..e4a7f2f3 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -14,6 +14,23 @@ GIT_AUTHORIZATION = ENV['GIT_AUTHORIZATION'] XCODEPROJ = "#{APP_NAME}.xcodeproj" SCHEME = APP_NAME +# Xcode 27.2's altool logs a spurious +# "ERROR: ... Failed to create URL for 'CDUploaderStateInfoResumeFilePath'" +# line even when the upload succeeds. fastlane treats any ERROR: line as a +# failure, which aborts upload_to_testflight before changelog/distribution. +module IgnoreBenignAltoolErrors + BENIGN_ALTOOL_ERRORS = ["CDUploaderStateInfoResumeFilePath"].freeze + + def parse_line(line, hide_output) + if BENIGN_ALTOOL_ERRORS.any? { |pattern| line.include?(pattern) } + UI.important("[altool] Ignoring benign error: #{line.strip}") + return + end + super + end +end +FastlaneCore::AltoolTransporterExecutor.prepend(IgnoreBenignAltoolErrors) + def delete_temp_keychain(name) delete_keychain( name: name