deliver/lib/deliver/submit_for_review.rb in fastlane-2.201.2 vs deliver/lib/deliver/submit_for_review.rb in fastlane-2.202.0

- old
+ new

@@ -21,15 +21,37 @@ update_export_compliance(options, app, build) update_idfa(options, app, version) update_submission_information(options, app) - version.create_app_store_version_submission - + create_review_submission(options, app, version, platform) UI.success("Successfully submitted the app for review!") end - private def select_build(options, app, version, platform) + private + + def create_review_submission(options, app, version, platform) + # Can't submit a review if there is already a review in progress + if app.get_in_progress_review_submission(platform: platform) + UI.user_error!("Cannot submit for review - A review submission is already in progress") + end + + # There can only be one open submission per platform per app + # There might be a submission already created so we need to check + # 1. Create the submission if its not already created + # 2. Error if submission already contains some items for review (because we don't know what they are) + submission = app.get_ready_review_submission(platform: platform, includes: "items") + if submission.nil? + submission = app.create_review_submission(platform: platform) + elsif !submission.items.empty? + UI.user_error!("Cannot submit for review - A review submission already exists with items not managed by fastlane. Please cancel or remove items from submission for the App Store Connect website") + end + + submission.add_app_store_version_to_review_items(app_store_version_id: version.id) + submission.submit_for_review + end + + def select_build(options, app, version, platform) if options[:build_number] && options[:build_number] != "latest" UI.message("Selecting existing build-number: #{options[:build_number]}") build = Spaceship::ConnectAPI::Build.all( app_id: app.id,