fastlane: lanes submit y status

submit envia a review una build ya subida: la 2.0.1 build 66 ya estaba en
TestFlight, y release habria reconstruido mientras publish nunca envia.
Distribucion automatica (AFTER_APPROVAL) y sin tocar screenshots, que se heredan.

status lista el estado de cada version en App Store Connect. Sirvio para
confirmar que la 2.0.1 quedo en AFTER_APPROVAL y no en MANUAL como la 2.0.
Ojo: asc_api_key devuelve el hash de opciones de fastlane, no un token de
spaceship; hay que construir el token aparte.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Ks8uUcMA9mjypVK7F2Pkt
This commit is contained in:
alexandrev-tibco
2026-08-07 11:10:22 +02:00
parent 55739c8f89
commit 95a1e3a133
2 changed files with 52 additions and 0 deletions
+36
View File
@@ -59,6 +59,42 @@ platform :ios do
newest ? newest.last : []
end
desc "Show the App Store state of each version (review status, release type)"
lane :status do
require 'spaceship'
# asc_api_key returns fastlane's option hash, not a Spaceship token.
Spaceship::ConnectAPI.token = Spaceship::ConnectAPI::Token.create(
key_id: `pass show appstore/api-key-id`.strip,
issuer_id: `pass show appstore/issuer-id`.strip,
key: `pass show appstore/api-key-p8`.strip
)
app = Spaceship::ConnectAPI::App.find("com.alexandrevazquez.mealmood")
app.get_app_store_versions(includes: "build").each do |v|
UI.message("#{v.version_string} — #{v.app_store_state} — release: #{v.release_type} — build: #{v.build&.version}")
end
end
# For a build that is already on TestFlight: `release` would rebuild it and
# `publish` never submits. Screenshots are left alone — they carry over.
desc "Submit an already-uploaded build for App Store review (automatic release)"
lane :submit do |options|
UI.user_error!("pass build:<number>") unless options[:build]
upload_to_app_store(
api_key: asc_api_key,
app_version: options[:version] || "2.0.1",
build_number: options[:build],
skip_binary_upload: true,
skip_metadata: false,
skip_screenshots: true,
overwrite_screenshots: false,
submit_for_review: true,
automatic_release: true,
force: true,
precheck_include_in_app_purchases: false,
run_precheck_before_submit: false
)
end
# Safety net for the Xcode build phase, which only uploads the dSYM produced
# locally. Run it once App Store Connect has finished processing the build —
# `beta` uses skip_waiting_for_build_processing, so right after an upload the
+16
View File
@@ -23,6 +23,22 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do
Push a new beta build to TestFlight
### ios status
```sh
[bundle exec] fastlane ios status
```
Show the App Store state of each version (review status, release type)
### ios submit
```sh
[bundle exec] fastlane ios submit
```
Submit an already-uploaded build for App Store review (automatic release)
### ios refresh_dsyms
```sh