diff --git a/.gitignore b/.gitignore index af0c7b6d..19c9caaa 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,8 @@ *.mocks.dart android/build/ ios/XCBuildData/ +docs/ +specs/ env/.env .env android/key.properties @@ -25,4 +27,4 @@ backend/ .fvm/ .fvmrc /eatvio -*.code-workspace \ No newline at end of file +*.code-workspace diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile index 32931c09..924075b1 100644 --- a/ios/fastlane/Fastfile +++ b/ios/fastlane/Fastfile @@ -161,9 +161,23 @@ platform :ios do verbose: true ) rescue => ex - UI.error "Upload to TestFlight failed: #{ex.message}" - UI.error "Full error: #{ex.backtrace.join("\n")}" - raise ex + # Xcode 26 altool prints a harmless "ERROR: ... CDUploaderStateInfoResumeFilePath" + # line even when the package was delivered fine (UPLOAD SUCCEEDED appears in the + # same output). fastlane < 2.240.0 treats every ERROR line as a failure + # (fastlane#30130), so the lane would die after a successful upload. + # Real Apple rejections (90186 closed train, 90062 version too low, ...) always + # contain UPLOAD FAILED and/or iris-code - those must still fail the lane. + if ex.message.include?("CDUploaderStateInfoResumeFilePath") && + !ex.message.include?("UPLOAD FAILED") && + !ex.message.include?("iris-code") + UI.important("altool delivered the package but reported a bogus resume-file ERROR " \ + "(fastlane#30130). Treating upload as successful - " \ + "verify the build appears in TestFlight.") + else + UI.error "Upload to TestFlight failed: #{ex.message}" + UI.error "Full error: #{ex.backtrace.join("\n")}" + raise ex + end end end end diff --git a/pubspec.yaml b/pubspec.yaml index 3cfa9ee2..b8218101 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: eatvio_app description: A new Flutter project. -version: 1.3.70+159 -publish_to: 'none' +version: 1.3.71+160 +publish_to: "none" environment: sdk: ^3.10.4