Troubleshooting Guide

Here’s a detailed list of the most common issues you may encounter when turning your Replit project into a mobile app with BuildNatively, along with explanations and fixes.

1. Login & Authentication Issues

1.1 My login opens in Safari/Chrome instead of inside the app

  • Why it happens: Social login (Google, Apple, Facebook) requires deep links (Universal Links/App Links) to bring users back to the app.

  • How to fix:

    1. Enable Deep Links in BuildNatively.

    2. Turn on Social Auth in the Features section.

    3. Rebuild your app.


1.2 My email/password login fails in the app but works in Replit

  • Why it happens: Cookies or session handling may break if redirects jump across domains.

  • How to fix:

    • Keep login pages on your main Replit domain (or custom domain).

    • Avoid sending users to another subdomain for authentication.

    • Make sure your entire app runs on HTTPS.


1.3 I get stuck after login (blank page or endless spinner)

  • Why it happens: Post-login redirects may point to a popup instead of a full page.

  • How to fix:

    • In Replit, create a dedicated page (like /dashboard) for the post-login redirect.

    • Update your login flow to redirect there.


2. Payments & Checkout Issues

2.1 Stripe/PayPal checkout doesn’t work in the app

  • Why it happens: Payment providers often require the phone’s browser to handle checkout securely.

  • How to fix:

    • Mark checkout pages as external in BuildNatively.

    • This ensures they open in Safari/Chrome and complete successfully.


2.2 Apple/Google rejected my app because of payments

  • Why it happens: Stores require In-App Purchases for digital goods and subscriptions.

  • How to fix:

    • For digital content: enable In-App Purchases (RevenueCat) in BuildNatively.

    • For physical goods or real-world services: you may keep Stripe/PayPal.


3.1 Notifications arrive but nothing happens when tapped

  • Why it happens: The notification didn’t include a deep link.

  • How to fix:

    • Add a URL in the notification payload (e.g., /messages/123).

    • Make sure that URL exists and works in your Replit app.


3.2 Notifications open the wrong page

  • Why it happens: The link in the notification doesn’t match your Replit routes.

  • How to fix:

    • Double-check that the link exactly matches your app’s route structure.


3.3 Notifications don’t show up at all

  • Why it happens: Push service setup is incomplete.

  • How to fix:

    • Confirm push is enabled in BuildNatively.

    • Upload correct configuration (OneSignal/Firebase).

    • Rebuild your app and test again.


4. Layout & Display Issues

4.1 Some pages look broken or cut off on small screens

  • Why it happens: The Replit layout isn’t mobile-optimized.

  • How to fix:

    • Adjust your CSS in Replit for responsive design.

    • Stack elements vertically instead of side-by-side.


4.2 iOS zooms in too much on forms

  • Why it happens: iOS zooms when input fields have small font sizes.

  • How to fix:

    • In Replit, set input font sizes to at least 16px.


4.3 Scrolling feels broken

  • Why it happens: Nested scrollable areas or large fixed sections can conflict with native scrolling.

  • How to fix:

    • Simplify layouts and avoid multiple nested scroll containers.


  • Why it happens: By default, BuildNatively treats all links as internal.

  • How to fix:

    • Add these domains as external links in BuildNatively so they open in the device’s browser.


  • Why it happens: The link points to a different domain or subdomain.

  • How to fix:

    • Keep all internal navigation on your main Replit domain.


5.3 Bottom bar tabs don’t load correctly

  • Why it happens: Each tab must point to a valid page inside your app.

  • How to fix:

    • Double-check that tab URLs match real Replit routes.


6. Media, Camera & Files

6.1 Camera or microphone don’t work

  • Why it happens: Permissions weren’t set.

  • How to fix:

    • Enable Camera or Microphone in BuildNatively.

    • Add clear permission descriptions.

    • Rebuild the app.


6.2 File uploads fail

  • Why it happens: Upload endpoints may be insecure or unstable.

  • How to fix:

    • Ensure all upload routes use HTTPS.

    • Test uploads on full pages instead of popups.


6.3 Images and videos load too slowly

  • Why it happens: Media files are too large.

  • How to fix:

    • Compress images/videos before uploading to Replit.


7. Location & Permissions

7.1 Location services don’t work

  • Why it happens: The feature wasn’t enabled.

  • How to fix:

    • Enable Geolocation in BuildNatively.

    • Add a clear permission description.

    • Rebuild the app.


7.2 Apple rejected my app for missing permission text

  • Why it happens: Apple requires a description for each permission.

  • How to fix:

    • Add clear explanations in BuildNatively.

    • Examples:

      • “We use your location to find nearby events.”

      • “We use your contacts to help you invite friends.”


8. Publishing Issues

8.1 Apple rejected my app as “just a website”

  • Why it happens: Apple expects apps to offer native features.

  • How to fix:

    • Add push notifications, deep links, or other native features.

    • Rebuild and resubmit.


8.2 My icon or splash screen didn’t update

  • Why it happens: Old assets were cached.

  • How to fix:

    • Upload new assets in BuildNatively.

    • Rebuild your app.

    • Uninstall old versions from your phone before testing.


8.3 App loads slowly on startup

  • Why it happens: The homepage in Replit is too heavy.

  • How to fix:

    • Optimize large images/videos.

    • Remove unnecessary scripts.

    • Keep the homepage simple.


9. Preview vs. Full Build

9.1 Features don’t work in the Preview App

  • Why it happens: Some native features aren’t supported in Preview.

  • How to fix:

    • Use Preview for layout and navigation checks.

    • Do a full build to test push, deep links, social login, and purchases.


10. General Tips

  • Always use HTTPS everywhere.

  • Create stable routes for login, profile, checkout, and dashboard.

  • Mark checkout and third-party services as external.

  • Add clear permission descriptions before submitting to app stores.

  • Optimize Replit content for mobile.

  • Rebuild your app whenever you change native settings.


11. App Store & Play Store Rejections

11.1 “Just a website” rejection

  • Fix: Add native features (push, deep links, sharing, camera, location).

11.2 Payment policy rejection

  • Fix: Use In-App Purchases for digital goods/subscriptions. Stripe/PayPal only for physical goods.

11.3 Missing permission descriptions

  • Fix: Add clear, user-friendly explanations in BuildNatively.

11.4 Broken or poor navigation

  • Fix: Test all links. Mark external ones correctly.

11.5 Performance issues

  • Fix: Optimize Replit homepage and assets.

11.6 Insufficient content

  • Fix: Fill your app with real, working content before submission.

11.7 Privacy or policy rejection

  • Fix: Add a Privacy Policy page in your Replit app and link it in store listings.


Quick Fix Checklist

  • ✅ HTTPS everywhere.

  • ✅ One domain for internal pages.

  • ✅ Stable URLs for login, profile, checkout.

  • ✅ External links configured correctly.

  • ✅ Permission descriptions added.

  • ✅ Push, deep links, and purchases set up if needed.

  • ✅ Layout tested on real phones.

  • ✅ Rebuilt after any native changes.

Last updated

Was this helpful?