

























@@ -136,17 +136,22 @@ def android_release_notes_path
136136File.join(__dir__, "metadata", "android", "en-US", "release_notes.txt")
137137end
138138139+def validate_android_release_notes!
140+release_notes_path = android_release_notes_path
141+UI.user_error!("Missing Android release notes at #{release_notes_path}. Run `pnpm android:version:sync`.") unless File.exist?(release_notes_path)
142+UI.user_error!("Android release notes at #{release_notes_path} are empty.") unless env_present?(File.read(release_notes_path))
143+end
144+139145def android_changelog_path(version_code)
140146File.join(__dir__, "metadata", "android", "en-US", "changelogs", "#{version_code}.txt")
141147end
142148143149def sync_android_changelog!(version_code)
144-release_notes_path = android_release_notes_path
145-UI.user_error!("Missing Android release notes at #{release_notes_path}.") unless File.exist?(release_notes_path)
150+validate_android_release_notes!
146151147152changelog_path = android_changelog_path(version_code)
148153FileUtils.mkdir_p(File.dirname(changelog_path))
149-File.write(changelog_path, File.read(release_notes_path))
154+File.write(changelog_path, File.read(android_release_notes_path))
150155changelog_path
151156end
152157@@ -178,6 +183,29 @@ def capture_android_screenshots!
178183sh(shell_join(["bash", File.join(repo_root, "scripts", "android-screenshots.sh")]))
179184end
180185186+def validate_android_release_signing!
187+Dir.chdir(android_root) do
188+sh(shell_join(["./gradlew", ":app:bundlePlayRelease", "--dry-run"]))
189+end
190+end
191+192+def print_android_release_plan!(version_metadata)
193+UI.message("Android Play release plan:")
194+UI.message(" package: #{play_package_name}")
195+UI.message(" track: #{play_track}")
196+UI.message(" release_status: #{play_release_status}")
197+UI.message(" validate_only: #{play_validate_only?}")
198+UI.message(" versionName: #{version_metadata.fetch(:version)}")
199+UI.message(" versionCode: #{version_metadata.fetch(:version_code)}")
200+end
201+202+def validate_android_release_preflight!(version_metadata)
203+validate_play_auth!
204+validate_android_release_signing!
205+validate_android_release_notes!
206+print_android_release_plan!(version_metadata)
207+end
208+181209def upload_play_store_metadata!(version_metadata)
182210validate_android_screenshots!
183211sync_android_changelog!(version_metadata.fetch(:version_code))
@@ -230,6 +258,14 @@ platform :android do
230258UI.success("Google Play API credentials are valid.")
231259end
232260261+desc "Validate Android Play release auth, signing, versioning, and release notes"
262+lane :release_preflight do
263+sync_android_versioning!
264+version_metadata = read_android_version_metadata
265+validate_android_release_preflight!(version_metadata)
266+UI.success("Android Play release preflight passed for #{version_metadata[:version]} (#{version_metadata[:version_code]}).")
267+end
268+233269desc "Upload Google Play metadata, changelog, and optional screenshots"
234270lane :metadata do
235271sync_android_versioning!
@@ -260,9 +296,9 @@ platform :android do
260296261297desc "Upload Android metadata, archive release artifacts, then upload the Play AAB"
262298lane :release_upload do
263-auth_check
264299sync_android_versioning!
265300version_metadata = read_android_version_metadata
301+validate_android_release_preflight!(version_metadata)
266302screenshots
267303ENV["SUPPLY_UPLOAD_METADATA"] = "1"
268304ENV["SUPPLY_UPLOAD_SCREENSHOTS"] = "1"
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。