Skip to content

Testing on Real Devices

The web preview in Primio is great for rapid iteration, but it doesn’t catch everything. Both Apple and Google test your app on real devices during review — and “app crashes” is the #1 rejection reason on both stores. Testing on a real phone before you submit is the single most effective way to avoid rejection.

The preview runs your app as a web page in an iframe. A real device runs it as a native app. These behave differently in several important ways:

BehaviorWeb previewReal device
Scroll physicsBrowser-styleNative bounce/overscroll
KeyboardDesktop keyboardOn-screen keyboard that resizes the layout
NavigationBrowser back buttonSystem back button/gesture
Camera/GPSNot availableNative access
PerformanceYour computer’s speedPhone’s actual speed (can be much slower)
NotificationsNot availableNative push notifications
App lifecycleAlways activeBackgrounding, foregrounding, memory pressure
Native pluginsMay not loadFull native access

If your app uses the camera, location, sensors, or any native plugin — you must test on a real device. The preview cannot simulate these.

The fastest way to test on Android is to build an APK in Primio and install it directly on your phone.

  1. Build an APK

    Go to Workspace → Publish → Android → Build APK. This takes about 10 minutes and costs 20,000 tokens.

  2. Install on your device

    Two options:

    • QR code — Scan the QR code shown after the build completes. This downloads the APK directly to your phone.
    • Download and transfer — Download the APK to your computer, then transfer it to your phone via USB, email, or cloud storage.
  3. Enable “Install from unknown sources”

    Your phone will prompt you to allow installation from unknown sources the first time. This is normal — APK files from outside the Play Store require this permission.

  4. Open the app and start testing

    Follow the testing checklist below.

Go through each item on a real device. If any item fails, fix it in Primio, rebuild, and test again.

  • App launches without crashing — Open the app. Does it load to the first screen without errors?
  • Every screen loads — Navigate to every screen in your app. No blank screens, no infinite loading spinners.
  • All buttons and interactive elements work — Tap every button, toggle, dropdown, and link. Do they respond?
  • Forms submit correctly — Fill in and submit every form. Does the data save? Do error messages appear for invalid input?
  • Data persists — Enter some data, close the app completely, reopen it. Is your data still there?
  • Back button/gesture works — Use the system back button (Android) or swipe-back gesture (iOS) on every screen. You should never get stuck.
  • Tab navigation works — If your app has bottom tabs or a drawer menu, tap each one. Do they all load the correct screen?
  • Deep links work — If your app has any in-app links, test them all.
  • No content cut off — Check that text, images, and buttons aren’t clipped by the screen edges or hidden behind the keyboard.
  • Keyboard doesn’t cover input fields — Tap a text field. When the keyboard appears, can you still see the field you’re typing in? Can you scroll to see submit buttons?
  • Scrolling works — On screens with long content, scroll to the bottom. Does all content appear? No jumpy or broken scroll behavior?
  • Landscape mode — Rotate your phone. Does the app handle it gracefully? (If your app is portrait-only, it should stay in portrait.)
  • No internet — Turn on airplane mode and open the app. Does it crash, or show a reasonable error?
  • App backgrounding — Switch to another app, wait 30 seconds, switch back. Is your app still in the same state?
  • Interruptions — Open the app, then receive a phone call or notification. After dismissing, is the app still working?
  • Privacy policy link works — Open Settings → Privacy Policy in your app. Does it open your actual privacy policy page?
  • All external links work — Tap every link that opens a website. No 404 errors or broken pages.

When you find something broken, reporting it clearly to Primio helps the AI fix it faster:

Be specific about what happened:

“When I tap the ‘Save’ button on the profile screen, the app crashes. This happens after filling in all three fields (name, email, bio). I’m testing on a Samsung Galaxy S23 with Android 14.”

Include context:

  • Which screen you were on
  • What you tapped or did right before the issue
  • Whether it happens every time or intermittently
  • Your device model and OS version (if relevant)

Attach a screenshot if the issue is visual — use Primio’s image attachment feature to show exactly what you see.

After fixing issues in Primio, rebuild (APK for Android, IPA for iOS) and test again. Repeat until everything works cleanly.

When your app passes all the checklist items on a real device, you’re ready to submit: