Base44 Mobile Native Features: How to Get GPS/HealthKit...

Daniel Frishtik

Daniel Frishtik

Founder of EscapeBase44 ·

Background GPS, HealthKit, NFC, a real scanner, Face ID & many more native features: Base44's mobile wrapper can't run them. Here's how to get them anyway.

A phone running a run-tracking map inside a sealed Base44 shell, with an orange puzzle piece marked with a location pin outside it and nowhere to fit

Your app works in the phone's browser. Then you built the store version in Base44, installed it, and the feature your app is built around doesn't work. The run tracker stops tracking the moment the screen locks. Apple rejects the build over HealthKit. The receipt camera works on the web and not in the Play Store version. The links people share open in Safari instead of the app. You ask the AI, it spends your credits and tells you it's a platform limitation, and support tells you to submit a feature request. I've seen this happen to a lot of people, and almost always when the app is 90% done.

Base44's app is your website inside a shell you can't touch

What Base44 puts in the stores isn't really your app. It's a small native app that opens your published Base44 site inside it, with no address bar. People call it the wrapper, and so does Base44. In there your app does what a website does on a phone: it shows your pages, asks for the location while it's open, takes photo uploads.

The things people actually get stuck on aren't website things. Tracking with the screen off, reading HealthKit, tapping an NFC tag, a widget on the home screen: each one needs native code inside the app itself, plus a line or two of settings that tell Apple and Google what the app does with it. The normal way to add that code to an app like this is a plugin, a small open-source package that hands one phone feature to your pages. The standard shell for apps built from a website is called Capacitor, and there's a plugin for almost every feature people ask Base44 for.

Base44's wrapper takes no plugins. It's the same shell for every Base44 app on every plan. Base44 builds it and signs it, and you can't add anything to it or change its settings (Apple's own error messages call it “WixOneApp”). Ask the AI for a plugin and at best it writes native code that just sits in your project doing nothing. Ask support and it's “platform-level”. Base44's mobile team said in August that they aren't working on background GPS and can't promise to match what Capacitor does.

Each feature is a plugin and a setting, and Base44's shell takes neither

Here's every native feature people ask for, what Base44's app does with it today, and what it takes on a normal app.

Can a Base44 app track GPS in the background?

No. Base44's app gets the location only while it's open on the screen, the way a website does, and stops the moment the screen locks or the person switches apps. For a run tracker, a delivery or driver app, or a safety app, that's the whole app: the route comes back as straight lines between the last points it caught.

On a normal app it's a background-location plugin and two settings: the background mode, and the “Allow all the time” text Apple shows the person. Then it keeps tracking with the screen off, the way Strava does. On Android it shows a small notification while it tracks, which Google requires.

Can a Base44 app use HealthKit or Health Connect?

No, and on iPhone it's worse than no. Base44's iPhone build carries a HealthKit entitlement without the sentence Apple requires for it, so apps get rejected over health data they never touch, and there's no way to add the sentence. Health data lives on the phone, not on a server, so a website can never read it.

On a normal app, HealthKit on iPhone and Health Connect on Android (where Samsung Health and Google Fit write their data) are one plugin, with the texts for reading and writing. Steps, heart rate and workouts from an Apple Watch land in Apple Health, so the same plugin reads those too. Garmin, Fitbit, Oura and Strava are a different story: your app connects to their servers, not to the phone, so the wrapper isn't what's in the way there.

Every App Store rejection a Base44 app gets, and which ones you can fix

Can a Base44 app use the camera and scan barcodes?

Sometimes. Taking a photo or scanning a QR code with a web library uses the camera the way a website does, and in Base44's store app it's hit and miss. People get a blank screen, a camera that opens in a separate view and freezes, or a scanner that works on the web and not in the Play Store version. Even when it works, a web scanner reads barcodes slowly and misses a lot of them, UPC codes especially.

On a normal app the camera works inside the app like it does in the browser, and scanning is a native scanner plugin: it opens instantly and reads a barcode the way a store's scanning app does.

Can a Base44 app use NFC?

No. Web NFC only exists in Chrome on Android, and not inside an app, so people building NFC apps on Base44 find it works in the browser and not in the version from the Play Store. iPhone has no web NFC at all. One owner got NFC working by editing the iPhone project by hand, and now has to redo it on every release.

On a normal app it's an NFC plugin, plus Apple's NFC permission and the text that says why the app reads tags.

Can a Base44 app connect to Bluetooth devices?

No. iPhone has no web Bluetooth, and the browser inside an Android app doesn't either, so receipt printers, car diagnostic readers and anything else that pairs over Bluetooth are out of reach.

On a normal app it's a Bluetooth plugin and the Bluetooth permission text.

Can a Base44 app use Face ID or fingerprint login?

No. Face ID and fingerprint unlock are native, and Base44's app has no way to ask for them. On a normal app it's a biometrics plugin: the app locks behind Face ID or the fingerprint, and opens straight into the saved session.

Can links open my Base44 app instead of the browser?

No. For a link to open your app (a shared post, an invite, a password reset email), the app has to claim your domain, and your domain has to vouch for the app with a small file. On Base44 you control neither side. Base44 serves that file itself and doesn't let you change it (on Android it even names a package your published app doesn't have), and the app can't claim your domain. So every link opens Safari or Chrome.

On a normal app both sides are yours: the app declares your domain, and your server serves the file.

Can a Base44 app download, share and print files?

Badly, especially on Android. A PDF invoice or a CSV export often does nothing at all in Base44's Android app, or pops up an “Open External Link?” box, and sharing to WhatsApp breaks. These are browser things, so they should just work.

On a normal app they do: the file lands in the phone's save screen or share sheet, and print opens the phone's print dialog.

Can a Base44 app play audio in the background?

No. When the screen locks or the person switches apps, the phone pauses a web page, so a radio stream, a meditation track or a sleep sound stops. On a normal app, background audio is one setting plus an audio plugin, with the controls on the lock screen. Keeping the screen awake while someone drives or cooks is a plugin too.

Can I have home screen widgets, Live Activities or an Apple Watch app?

Not on Base44. A home screen widget, a Live Activity on the lock screen, an Apple Watch app or a CarPlay screen isn't something your pages can draw. Each one is a small native part of the app, written in Swift on iPhone, that reads your app's data. On Base44's shell there's no room for them at all.

On a normal app they're more work than a plugin, but they're just code in your app, and the AI can write them like anything else.

Can I change the splash screen, rotation or status bar?

Barely. Base44 builds the splash screen out of your logo and a background color it picks, and you can't upload your own. The app is portrait only, which Base44's support confirms, so a video app can't play sideways and a tablet held sideways can get stuck on the splash. The status bar and Android's bottom bar can't be colored or hidden, however many credits you spend asking the AI (one person counted over 100).

On a normal app all of it is settings: your own splash, landscape where you want it, a status bar that matches your app or disappears during a video.

Does a Base44 app get push notifications?

Yes, since August. You upload your Apple key and Firebase file in Base44's store-files window, and your backend functions send the notifications, about one integration credit each, one person at a time. Apps already installed get it after a new store build. On a normal app, push runs on your own Apple and Firebase keys and your own backend sends it, with no credits involved.

Can a Base44 app sell in-app purchases?

No. Base44's app has no Apple or Google in-app purchases, and Apple rejects most apps that sell anything digital inside without them. On a normal app, purchases go through Apple and Google and your own server checks them.

The usual workarounds keep your app on Base44, or rebuild it

When people find out their Base44 app can't use the native feature it needs, they usually try one of four things.

  1. Wait for Base44. Every one of these native features has been sitting as a feature request under “review” on Base44's feedback board for months, some for over a year, and the AI can't do anything about the shell in the meantime. If your app needs one of the features above to be the app it is, waiting isn't a plan.
  2. Pay a wrapper service. Despia, AppNative, CapWrapper, Median, Natively and others put their own shell around your Base44 site, and the bigger ones do have background GPS, HealthKit, widgets and Face ID. What you've actually done is swap Base44's shell for theirs. It's another shell you can't touch, with its own limits (one of them caps push at 100 notifications on its cheapest plan) and its own list of what you're allowed to use. And now you're on two platforms instead of one: Base44 still runs your app, its backend and its login, the wrapper company runs the phone part, and you pay both. Despia even tells you to replace Base44's login with one of your own.
  3. Wrap it yourself with Capacitor. This is what Base44's own community moderators tell everyone to do, and the native part really does work: people have shipped apps this way. You become the developer of the shell (Xcode, Android Studio, signing, a Mac for the iPhone build), which can be doable if you're technical enough.

    The wall is that the app is still Base44's. The code is served by Base44, the backend and the login run on Base44's servers, and your shell is wrapped around something you don't control. So you end up choosing: point the shell at your live Base44 site and the plugins don't work (the pages Base44 serves don't know your shell exists), or bundle the exported code into the app and the login breaks (Base44's sign-in only comes back to Base44's own address). Either way, the half you don't own decides. Fine for an app with no login. Everyone else spends weeks on this and most never get the login working.

  4. Rebuild it as a native app. React Native, Flutter or Swift, or what ChatGPT usually suggests: a separate native app that uses Base44 as its backend. That's your whole app written again from scratch. People get quoted “$5K or up” for it, and with Base44 as the backend you're still on Base44, with its login and its bill.

Make your Base44 app a normal app, and every feature opens up

Look at that list again: background GPS, HealthKit, NFC, Bluetooth, the scanner, Face ID, links, the splash screen. Every one of them comes down to the same thing: the shell your app runs in isn't yours. On a normal app the shell belongs to the app's owner, so each item on that list is a plugin and a setting, added to the app you already have and shipped in the next build. Nobody rebuilds an app to give it HealthKit.

The hard part is getting a Base44 app to that point. Base44's export gives you the code, but not your data and not the backend it runs on, and that backend is where your login lives. That's exactly why the do-it-yourself wrap gets stuck on sign-in.

See exactly what Base44 export includes (and what it doesn't)

This is why I built EscapeBase44. I hit the same wall on my own app: I couldn't install the libraries I needed, and every time I tried to go a little beyond the basics there was baked-in code Base44 wouldn't let me change. So I reverse-engineered Base44's entire backend until I could get my app out as it was, and then automated the whole move.

EscapeBase44 takes your Base44 app exactly as it is and turns it into a normal app on normal providers, under your own accounts: every screen, every record, every user with their password, your backend functions, all of it. Nothing gets rebuilt. And it gives the app its own native shell:

  • The standard Capacitor shell, in your own code. Any plugin can go into it, and the phone settings each plugin needs are kept with your code, so every build carries them.
  • Store builds with one click, no Mac. The iPhone build lands in your TestFlight, and the Android build is a signed file ready for Google Play.
  • The browser things just work in the app. Location, the camera, the microphone, photo uploads, downloads, sharing and printing, on both phones.
  • Push, Sign in with Apple and in-app purchases are already in. Push runs on your own keys, Apple sign-in opens Apple's own sheet, and purchases go through Apple and Google.
  • Your splash screen, your rotation, your status bar.
  • Keep building with AI, just like you did on Base44. Ask for HealthKit the way you'd ask for a new page, and the AI adds the plugin and its settings; the next store build has it. Changes to your pages reach the installed app right away, and only native changes need a new build.

That's the whole difference. On Base44, the feature your app is about waits on a shell that isn't yours. On a normal app, it's a plugin and a setting away, and you add it the same way you added everything else.

Make your Base44 app a normal app, and add any native feature you want.

See how the migration worksAlready sure?

Base44 native features FAQ

  • Can a Base44 app use HealthKit?

    No. Base44's iPhone app has no way to read Apple Health, and its builds carry a HealthKit entitlement without the text Apple requires, which gets apps rejected. On a normal app, HealthKit and Android's Health Connect are one plugin plus their permission texts.

  • Can a Base44 app track GPS in the background?

    No. It gets the location only while the app is open on the screen, the way a website does, and stops when the screen locks. Background tracking needs a native plugin and a background setting, which Base44's wrapper doesn't take.

  • Can I add Capacitor plugins to my Base44 app?

    Not to the app Base44 builds. Its wrapper is the same shell for every app and takes no plugins or settings, so plugin code the AI writes just sits in your project doing nothing.

  • Can I wrap my Base44 app with Capacitor myself?

    Yes, and the native part works. What stops most people is sign-in: Base44 runs your login, and it doesn't come back into an app it doesn't recognize, so you end up choosing between working login and working plugins.

  • Does a Base44 app have push notifications?

    Yes, since August 2026. You upload your Apple key and Firebase file, and your backend functions send them, at about one integration credit per notification.

  • Can a Base44 app use NFC?

    No. Web NFC only exists in Chrome on Android and not inside an app, and iPhone has none at all. NFC needs a native plugin and Apple's NFC permission.

  • Is a wrapper service like Despia or Median enough?

    For a feature on their list, it works. You pay them on top of your Base44 plan, you get only the features they built, and your app, its backend and its login stay on Base44.

  • Do I have to rebuild my app to get native features?

    No. Once your Base44 app is a normal app with its own native shell, each feature is a plugin and a setting added to the app you already have.

  • Can I still build my app with AI after it moves?

    Yes, just like on Base44. You ask for a feature in the chat, and for a native one the AI adds the plugin and its phone settings, which the next store build carries.