# Test on devices and store tracks

> Compare Studio preview, Android APKs, iPhone device builds, simulators, TestFlight and Google Play testing.

Canonical: https://www.rnblocks.dev/docs/publishing/testing
Updated: 2026-10-01

Use Studio preview while building. Before release, install and test the build intended for your users. Different testing routes need different artifacts and account setup.

## Choose the route that fits

Section: https://www.rnblocks.dev/docs/publishing/testing#routes

| Route | Use it for | Important difference |
| --- | --- | --- |
| Studio native preview | Fast checks while building | This is not your signed store build. |
| Android APK | Direct installation on a test phone | A Play test track is a separate route. |
| Registered iPhone or iPad | Direct testing on selected Apple devices | Requires device registration and matching signing. |
| iOS simulator | Testing on a Mac with Xcode | Cannot be installed on a physical iPhone. |
| TestFlight | Beta distribution through Apple | Uses a store build and App Store Connect. |
| Google Play testing | Distribution through a Play test track | Uses the Play account, app record and eligible track. |

- [Studio previews](https://www.rnblocks.dev/docs/previewing-screens)
- [Accounts needed](https://www.rnblocks.dev/docs/publishing/accounts)

## Request a direct-device test

Section: https://www.rnblocks.dev/docs/publishing/testing#direct

1. **Tell the agent your device** — For example: Help me test this app on my Android phone. Or: Prepare an iPhone build for my registered device. Use Release settings to confirm Device or simulator testing and the correct platform.

2. **Complete the setup** — Connect Expo and link the app’s project. For a physical iPhone, also check Apple signing and device registration. Follow any private registration step on the intended phone.

3. **Review and build** — Check the proposed app, destination and account before approval. Wait for a confirmed finished build, then use its installation or download instructions.

4. **Test the installed app** — Open it from the device home screen and exercise the main journey. Report the exact device, build and failing step if anything goes wrong.

> **A newly registered iPhone may need a refreshed profile**
> An older ad hoc profile may not include the new device. Ask the agent to check the profile before rebuilding; registration alone does not update every previous artifact.

- [Expo internal distribution](https://docs.expo.dev/build/internal-distribution/)

## Register the phone you will actually test

Section: https://www.rnblocks.dev/docs/publishing/testing#iphone-registration

A registration QR identifies the phone; a finished build’s installation QR installs that build. One does not replace the other.

1. **Open the registration handoff on that iPhone** — Use the QR or Open registration from the publishing conversation. Complete the requested registration on the intended phone.

2. **Finish the provider’s device step** — When prompted, open Settings → Profile Downloaded and install Expo’s registration profile. Return to Safari to finish. Downloading the profile alone does not finish registration.

3. **Return to the saved conversation** — Use Check phone if the card is still waiting. Check the displayed device, then choose Use this device to prepare the next review. Registering another phone needs a fresh handoff.

> **Registration is not a new signed build**
> The signing profile and build must include this phone. Registering it later does not change a previously built app’s installation eligibility.


## Open the installed iPhone test build

Section: https://www.rnblocks.dev/docs/publishing/testing#iphone-install

1. **Open the installed internal build** — On iOS 16 or later, an internal distribution or local development build can ask for Developer Mode. This is different from opening a Studio preview.

2. **Enable Developer Mode if requested** — On your iPhone, open Settings → Privacy & Security → Developer Mode. Turn it on, restart, then confirm Turn On and your passcode on the phone.

3. **Verify the actual app** — Open the app from its icon, sign in if needed and finish its main task. Successful registration or download alone does not confirm installation and runtime behavior.

- [Expo: enable iOS Developer Mode](https://docs.expo.dev/guides/ios-developer-mode/)

## Test social sign-in in the right build

Section: https://www.rnblocks.dev/docs/publishing/testing#social-login

OAuth/OpenID browser redirects using Expo AuthSession need a development build with your app’s own scheme; Expo Go cannot validate that flow. Native Apple authentication has different preview support. Test the final configured app on a real device before review.

- [Social sign-in and Apple’s login rules](https://www.rnblocks.dev/docs/publishing/social-sign-in)
- [Expo OAuth and OpenID testing](https://docs.expo.dev/guides/authentication/)

## TestFlight

Section: https://www.rnblocks.dev/docs/publishing/testing#testflight

Choose Store testing or review and prepare a finished iOS store build. After the reviewed upload, check that Apple has processed the intended build, then complete any required beta information and compliance questions.

TestFlight separates internal App Store Connect testers from external testers. External testing may require beta review. Assign the correct build to a group and invite testers; uploading alone does not invite them.

Ask the publishing agent to inspect the existing build and group before creating another upload. Complete any unsupported step in App Store Connect. TestFlight availability is not public App Store availability.

- [TestFlight overview](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview/)

## Do I need TestFlight again for a new build?

Section: https://www.rnblocks.dev/docs/publishing/testing#testflight-updates

Keep the same app, tester group and accepted invitations. Once Apple processes the new build and it is assigned to the group, existing testers can update it in TestFlight. You do not need to recreate the setup or invite those testers again.

TestFlight is optional before App Review. You can select a processed store build and submit the app for review directly. Uploading a build, making it available to testers, submitting for App Review and releasing publicly are separate steps.

- [TestFlight overview](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview/)
- [Submit an app to App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/submit-an-app)
- [Apple: upload for the App Store or optional TestFlight testing](https://help.apple.com/xcode/mac/current/en.lproj/dev442d7f2ca.html)

## Google Play tracks and new personal accounts

Section: https://www.rnblocks.dev/docs/publishing/testing#play

Play offers internal, closed and open testing. Choose the track in Play Console and follow its tester instructions. Internal testing is useful for an early team check; a closed test can target a specific tester group.

For personal developer accounts created after November 13, 2023, Google currently requires at least 12 testers opted in continuously for 14 days in a closed test before applying for production access. Meeting that threshold lets you apply; it is not automatic approval.

- [Testing requirements for new personal Play accounts](https://support.google.com/googleplay/android-developer/answer/14151465?hl=en)

## What to test before release

Section: https://www.rnblocks.dev/docs/publishing/testing#test-list

Record the version, device and outcome. If you change the app afterward, retest the affected journeys using a new relevant build. Do not treat a previously passing build as evidence for changed code.

- Cold launch, sign-in, sign-out and reopening the app.
- The app’s main action and saved data after a restart.
- Connected features using the intended production configuration.
- Permission requests, keyboard behavior, safe areas and large text.
- Loading, empty, offline and failed-request states.
- Account deletion and privacy controls where applicable.
- Phone sizes and both platforms you intend to support.


## Continue

- [Release settings](https://www.rnblocks.dev/docs/publishing/release-settings)
- [Store screenshots](https://www.rnblocks.dev/docs/publishing/store-assets)
- [Submission and review](https://www.rnblocks.dev/docs/publishing/submit-and-review)

## Official references

- [Expo internal distribution](https://docs.expo.dev/build/internal-distribution/)
- [Expo: enable iOS Developer Mode](https://docs.expo.dev/guides/ios-developer-mode/)
- [Expo OAuth and OpenID testing](https://docs.expo.dev/guides/authentication/)
- [TestFlight overview](https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview/)
- [Testing requirements for new personal Play accounts](https://support.google.com/googleplay/android-developer/answer/14151465?hl=en)
