Class: Deliver::SubmitForReview
- Inherits:
-
Object
- Object
- Deliver::SubmitForReview
- Defined in:
- deliver/lib/deliver/submit_for_review.rb
Instance Method Summary collapse
- #find_build(candidate_builds) ⇒ Object
- #submit!(options) ⇒ Object
- #wait_for_build(app, app_version) ⇒ Object
Instance Method Details
#find_build(candidate_builds) ⇒ Object
107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'deliver/lib/deliver/submit_for_review.rb', line 107 def find_build(candidate_builds) if (candidate_builds || []).count == 0 UI.user_error!("Could not find any available candidate builds on App Store Connect to submit") end build = candidate_builds.first candidate_builds.each do |b| if b.upload_date > build.upload_date build = b end end return build end |
#submit!(options) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'deliver/lib/deliver/submit_for_review.rb', line 5 def submit!() app = [:app] select_build() UI.("Submitting the app for review...") submission = app.create_submission(platform: [:platform]) # Set app submission information # Default Values submission.content_rights_contains_third_party_content = false submission.content_rights_has_rights = true submission.add_id_info_uses_idfa = false # User Values if [:submission_information] [:submission_information].each do |key, value| UI.("Setting '#{key}' to '#{value}'...") submission.send("#{key}=", value) end end # Finalize app submission submission.complete! UI.success("Successfully submitted the app for review!") end |
#wait_for_build(app, app_version) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'deliver/lib/deliver/submit_for_review.rb', line 55 def wait_for_build(app, app_version) UI.user_error!("Could not find app with app identifier") unless app start = Time.now build = nil loop do # Sometimes candidate_builds don't appear immediately after submission # Wait for candidate_builds to appear on App Store Connect # Issue https://github.com/fastlane/fastlane/issues/10411 candidate_builds = app.latest_version.candidate_builds if (candidate_builds || []).count == 0 UI.("Waiting for candidate builds to appear...") if (Time.now - start) > (60 * 5) UI.user_error!("Could not find any available candidate builds on App Store Connect to submit") else sleep(30) next end end latest_build = find_build(candidate_builds) # if the app version isn't present in the hash (could happen if we are waiting for submission, but didn't provide # it explicitly and no ipa was passed to grab it from), then fall back to the best guess, which is the train_version # of the most recently uploaded build app_version ||= latest_build.train_version # Sometimes latest build will disappear and a different build would get selected # Only set build if no latest build found or if same build versions as previously fetched build # Issue: https://github.com/fastlane/fastlane/issues/10945 if build.nil? || (latest_build && latest_build.build_version == build.build_version && latest_build.train_version == app_version) build = latest_build end return build if build && build.processing == false if build UI.("Waiting App Store Connect processing for build #{app_version} (#{build.build_version})... this might take a while...") else UI.("Waiting App Store Connect processing for build... this might take a while...") end if (Time.now - start) > (60 * 5) UI.("") UI.("You can tweet: \"App Store Connect #iosprocessingtime #{((Time.now - start) / 60).round} minutes\"") end sleep(30) end nil end |