# Submit, review and release

> Understand upload, store review and public release as separate steps, and check the exact app version before submission.

Canonical: https://www.rnblocks.dev/docs/publishing/submit-and-review
Updated: 2026-10-01

A build, an upload, a review submission and a public release are different events. Check the destination and result at each step so you know exactly what is available to testers or customers.

## Review the release package

Section: https://www.rnblocks.dev/docs/publishing/submit-and-review#ready

Ask the publishing agent to check the current release and explain outstanding items. Review declarations yourself using what the app and its connected services actually do.

- The intended app identifier, version and finished build.
- Tests completed on the platforms and devices you support.
- Accurate listing, app icon and screenshots for the submitted build.
- Working support and privacy URLs, plus required privacy and content declarations.
- Review access and instructions for features behind sign-in.
- Correct countries, pricing and release timing in the store.

- [Privacy and support](https://www.rnblocks.dev/docs/publishing/privacy-and-support)
- [Store assets](https://www.rnblocks.dev/docs/publishing/store-assets)

## Upload an iOS build

Section: https://www.rnblocks.dev/docs/publishing/submit-and-review#apple-upload

After a store build finishes, ask the agent to prepare its upload. When the supported upload action is available, RNBlocks presents Upload this build to App Store Connect? with the exact app, build, Apple team and Expo project.

The review also explains that Expo receives the saved Apple team API key for the upload. Approve only the intended action. Check the saved upload result afterward; if interrupted, ask to check the attempt before repeating it.

A finished upload does not invite testers, send an app to App Review or release it publicly. Check Apple’s processing result and select the correct build for the version.

- [Apple connection](https://www.rnblocks.dev/docs/publishing/accounts/apple)

## Submit to Apple and release after approval

Section: https://www.rnblocks.dev/docs/publishing/submit-and-review#apple-review

The saved Apple API key supports these operations. RNBlocks does not ask for your Apple Account password. Detailed reviewer messages and App Privacy still use App Store Connect; share the relevant review message with the agent so it can help you respond.

Apple also offers automatic release settings in App Store Connect. Check the actual setting before submission: automatic release can make an app public after approval without another release action.

1. **Check the version** — Ask the agent to check the current app version, selected build and outstanding requirements. Complete any required App Privacy answers in App Store Connect.

2. **Prepare the submission** — The agent can create an App Review draft and add the exact version through Apple’s API. Review each action in RNBlocks. A draft has not been sent to Apple.

3. **Submit for review** — Approve the exact submission when ready. The agent sends it to Apple and checks the result. TestFlight testing and App Review are separate: adding a build to TestFlight does not submit the public app.

4. **Release the approved version** — RNBlocks’ release tool requires a manually held version that Apple has approved. A separate release review identifies the exact app and version before making it publicly available. Approval for a build or review submission does not approve public release.

- [Submit an app to App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/submit-an-app)
- [Apple release options](https://developer.apple.com/help/app-store-connect/manage-your-apps-availability/select-an-app-store-version-release-option/)

## Upload a Google Play testing draft

Section: https://www.rnblocks.dev/docs/publishing/submit-and-review#google-review

After an Android store build finishes, ask the agent to prepare its Google Play upload. The review identifies the exact App Bundle, linked app and internal testing track. It also explains that Expo receives the saved service-account key to perform the upload.

An upload goes through Expo before it reaches Google. After Expo reports finished, RNBlocks checks that the matching version code exists on Google Play as a draft. A draft is not available to testers. Keep the same app and saved upload after an interruption; check its status before trying again.

Tester selection, starting the test release, policy declarations and public release are separate steps. Complete unsupported actions in Play Console and check the actual result.

Google’s Publishing overview distinguishes changes not yet sent, changes in review and changes ready to publish. For updates, managed publishing can hold approved changes until you choose to publish. Read the displayed state before announcing availability.

- [Publish your app on Google Play](https://support.google.com/googleplay/android-developer/answer/9859751?hl=en)
- [Google account setup](https://www.rnblocks.dev/docs/publishing/accounts/google-play)

## Start testing or prepare a first public release

Section: https://www.rnblocks.dev/docs/publishing/submit-and-review#google-release

Ask the agent to prepare a release from the uploaded version code. RNBlocks reviews the exact app, track, build and release notes, then saves the approved first release through Google’s API. Check the provider result and tester access separately; a saved release does not prove someone installed it.

For testers, RNBlocks can add an existing Google Group to a supported track. A Google Group is a managed group address, not a new personal email account. Individual tester email lists still need Play Console.

A first production release requires its own public-release approval. Google may reject an API submission while the app is still a draft, with “Only releases with status draft may be created on draft app.” In that case, use Play Console → Production → Create new release → Add from library, select the tested version, review and save, then send the changes for review from Publishing overview. Reuse the uploaded bundle; rebuilding or repeating the same API request will not fix this rejection. This fallback is a Console action, not a completed RNBlocks API submission. Complete countries and regions, policy declarations and any required testing first. Check Publishing overview for review or publishing steps that Google still requires. Testing updates can replace one completed release with a newer uploaded version after review. This path is still being verified with a real update. The agent can prepare production updates and staged rollout controls through the same approval flow. These paths are implemented and still being verified with real provider outcomes. A staged update starts with a percentage of users; you can increase it, pause, resume or complete it. Pausing does not remove copies already installed. Your first launch can use a full release. Multiple-APK and country-targeted rollout changes remain restricted.

- [Publish your app on Google Play](https://support.google.com/googleplay/android-developer/answer/9859751?hl=en)
- [Testing and tester access](https://www.rnblocks.dev/docs/publishing/testing)

## Automatic or managed publishing?

Section: https://www.rnblocks.dev/docs/publishing/submit-and-review#google-publishing-mode

Automatic publishing makes approved changes available without another release click. A production submission can therefore lead to a public launch after Google approves it; approve that outcome before submitting.

Managed publishing holds approved changes for eligible apps. Google says the app must already be available; it is not an option for an app’s first publication. Check eligibility instead of promising a held first launch. In Play Console → Publishing overview → Changes ready to publish, choose Publish changes when you are ready. This is the step that makes the approved changes available to users.

Google’s documented public API does not expose that final managed-publishing action. This is a Google API limitation, not an RNBlocks tool waiting to be connected. OAuth and a service-account key use the same API capabilities; switching credentials does not add the missing action. RNBlocks can check the release status and explain the required Console step.

Other Console steps include initial app creation, initial countries and regions, individual tester email lists and declarations not exposed by the API. The agent can propose answers and direct you to the relevant page. Listing text, images, Data safety uploads and supported release-track operations have API paths. Provider support, an implemented RNBlocks tool and a verified live outcome are separate claims.

- [Google managed publishing](https://support.google.com/googleplay/android-developer/answer/9859654?hl=en)
- [Google Play API reference](https://developers.google.com/android-publisher/api-ref/rest)
- [Google account setup and Console steps](https://www.rnblocks.dev/docs/publishing/accounts/google-play)
- [Privacy declarations](https://www.rnblocks.dev/docs/publishing/privacy-and-support)

## If the store asks for changes

Section: https://www.rnblocks.dev/docs/publishing/submit-and-review#issues

Read the specific issue and reproduce it in the submitted build. Fix the app or metadata that caused it, then repeat the relevant checks. A source fix needs a new build when the installed app must change.

Respond through the store’s review conversation with a concise explanation and any requested steps or evidence. The agent can update Apple’s review notes after rejection and select an eligible replacement build while keeping manual release. Build selection is reviewed separately from resubmission. Saving those notes does not reply to the review message, resolve an issue or resubmit the app.

For an Apple submission containing one rejected app version, the agent can prepare separate reviews to mark the addressed issue resolved and resubmit that same submission. Supply requested evidence first, including a physical-device recording when Apple asks for one. Keep the same app record and account.

Review duration depends on the store and the app. A prepared checklist cannot guarantee approval or a release date.


## Continue

- [Testing routes](https://www.rnblocks.dev/docs/publishing/testing)
- [Update your app](https://www.rnblocks.dev/docs/publishing/updates)
- [Accounts and costs](https://www.rnblocks.dev/docs/publishing/accounts)

## Official references

- [Submit an app to App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/submit-an-app)
- [Apple release options](https://developer.apple.com/help/app-store-connect/manage-your-apps-availability/select-an-app-store-version-release-option/)
- [Publish your app on Google Play](https://support.google.com/googleplay/android-developer/answer/9859751?hl=en)
- [Apple App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/)
