From 436bab0c8ac2be69fa17b7e17b1c1f41438a3806 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Fri, 8 May 2026 21:47:46 +0700 Subject: [PATCH] fix(fastlane): populate whatsNew on new App Store version before review submit_for_review failed with "appStoreVersions ... is not in valid state - missing required attribute 'whatsNew'". Apple requires a non-empty "What's New" string on every new version. With skip_metadata, deliver never sets it, so we populate it ourselves via spaceship for every existing localization on the edit version. --- packages/app/fastlane/Fastfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/app/fastlane/Fastfile b/packages/app/fastlane/Fastfile index d41dcb8ef..2af230c85 100644 --- a/packages/app/fastlane/Fastfile +++ b/packages/app/fastlane/Fastfile @@ -56,6 +56,18 @@ platform :ios do # and won't auto-create one when skip_metadata + skip_screenshots are set. app.ensure_version!(app_version, platform: Spaceship::ConnectAPI::Platform::IOS) + # Apple requires a non-empty "What's New" on every new App Store version + # before it can be submitted for review. With skip_metadata: true, deliver + # never sets this, so we populate it directly per-locale. + edit_version = app.get_edit_app_store_version(platform: Spaceship::ConnectAPI::Platform::IOS) + release_notes = "Bug fixes and improvements." + edit_version.get_app_store_version_localizations.each do |localization| + if localization.whats_new.to_s.strip.empty? + UI.message("Setting whatsNew on #{localization.locale}") + localization.update(attributes: { whatsNew: release_notes }) + end + end + deliver( api_key: api_key, app_identifier: APP_IDENTIFIER,