Privacy Policy

Long Exhale, published by Royal Nation LLC.

Last updated: 6 October 2026

"We" and "us" below mean Royal Nation LLC. In practice they appear only in sentences about what we do not receive.

The short version

What you do in a session never leaves your device. Not a breath count, not a morning answer, not a heart rate, not how long it took you to fall asleep. There is no account and no sign-in, and we have no server of our own for any of it to go to.

Some things do leave, and this version of the policy exists because there are more of them than before:

Each is described below, including what it does and does not contain. None of it has your name, your email, or anything you did during a session attached to it.

We used to be able to say that nothing about your sleep left your device, full stop. We can still say that about what happens during a session. We can no longer say it about whether you opened the app, and we would rather tell you that plainly than let an older sentence go on implying otherwise.

What is stored, and where

Long Exhale keeps a small amount of information on your device so the app works between nights:

All of it lives in your device's own app storage. None of it is sent to us or to anyone else. We cannot see it, and we have no way to retrieve it.

What is never collected

There are no advertising SDKs in this app. There are analytics and crash-reporting components, and a push service, and they are the next three sections. They are the only third parties the app talks to, apart from RevenueCat for purchases.

Usage and crash reports

The app uses Google Analytics for Firebase and Firebase Crashlytics, both operated by Google.

Three events, and nothing attached to them. The app tells Google when it is opened for the first time, when a session is started, and when the purchase screen is shown. Those are the only events we send. They carry no parameters at all — not the kind of session, not how long it ran, not whether you slept. This is enforced in the code rather than promised: the function that sends an event has no argument to carry anything but its name.

A session being started is, unavoidably, a fact about when you tried to sleep. We receive it in the same way any app learns it was opened, and in no more detail.

What Google adds on its own. Like any analytics service, Google Analytics for Firebase assigns a random identifier to each installation and records basic information about the device and the app: device model, operating system and app version, language, time zone, and a rough country or region worked out from your IP address. It also records ordinary lifecycle events such as the app being opened. The identifier is not linked to your name, your email, your Apple or Google account, or to any advertising identifier.

Crash reports. If the app crashes, Crashlytics sends a report: what the app was doing at that moment in technical terms, the type of device and operating system, and a random installation identifier so the same crash is not counted twice. We do not attach any of your data to it.

What we turned off. The analytics component is built without the advertising identifier on iPhone. On Android the advertising-ID permission, and the newer ads-attribution permissions, are removed from the app entirely. Automatic screen tracking is switched off. The app also tells Google not to use its data for advertising: ad storage, ad personalisation and sharing of user data for ads are all off by default. Reporting is also switched off in development builds, so testing does not count as use.

You can turn it off. Settings has a switch, "usage data", that stops the usage counts and the crash reports. It takes effect straight away for usage counts. Crash reporting stops for the rest of that run and stays off afterwards. It is on by default; switching it off does not change anything else in the app. It does not affect notifications, which you control through your phone, or the purchase record, which exists only if you buy something.

Notifications from us

If you allow notifications, the app registers your device with OneSignal, a push-messaging service, so that we are able to send a notification to your phone. What OneSignal receives is a push token, a random identifier it assigns to your device, the app version, your language and time zone, how often and when the app was used, and your IP address (which OneSignal does not collect for people in the EU and UK). It receives nothing about your sleep and nothing from a session.

The app does not ask for notification permission when you first open it. It asks when you turn on the wind-down reminder, because that is the moment it can explain what the notification is for. If you decline, nothing is registered. You can withdraw permission at any time in your phone's settings.

The wind-down reminder itself is unchanged: it is a local notification, created and delivered entirely by your phone.

The paid features

The measured features are unlocked by a single purchase. Payment itself is handled entirely by Apple or Google; we never see a card number, and neither does RevenueCat.

RevenueCat records that a purchase happened so the app can tell, on any device you sign into the same store account with, that you have already paid. In Apple's own privacy vocabulary, which RevenueCat declares in the code we ship, that record is purchase history, it is not linked to your identity, and it is not used to track you.

We have deliberately turned off the parts of RevenueCat that would make it more than that:

Making a network request necessarily reveals your IP address to the server receiving it, as it does for every app and every website; RevenueCat uses it to determine your country for tax and currency. We do not receive it.

If you never buy anything, the app never contacts RevenueCat about you at all beyond asking what is for sale.

Sensors

Motion. During a session the app reads your device's accelerometer to estimate whether you have fallen asleep, so the guide can begin fading. These readings are used in the moment, on your device, and are never recorded or transmitted. Nothing about your movement is written to storage.

Heart rate. On Apple Watch, the app reads your heart rate during a session and uses it to slow the breathing pace as you settle. You are asked for permission the first time. Declining changes nothing except that the pace follows its fixed schedule instead — the app works the same way without it.

The reading is used on your wrist and never leaves it. It is not sent to us, and it is not sent to your phone either: your phone is told the resulting change in pace, not your pulse. The app only ever reads heart rate — it never writes anything to Health — and it stores no heart rate anywhere. Readings are held in memory for the length of the session and discarded when it ends.

Your iPhone does not have permission to read Health data at all. Only the watch app does, which is what makes "it never leaves the wrist" a description of how the app is built rather than a promise about how we behave.

The wind-down reminder

If you turn on the wind-down reminder, the app schedules a single daily notification on your device. That notification is local: it is created and delivered entirely by your phone, with no server involved. The separate matter of push messages from us, which does involve a service, is covered under Notifications from us above.

Children

Long Exhale is intended for adults. It is not directed at children, and we do not knowingly collect information from them. The usage and crash information described above is collected from every installation and cannot tell us how old anyone is.

Deleting your data

Delete the app. Everything it stored goes with it: every session, every morning answer, every setting. There is no account to close.

Two kinds of record do not go with it: the usage and crash information held by Google, and the push registration held by OneSignal. Both are tied to random installation identifiers that the app does not show you, so we cannot pick out one person's records, and we would rather say so than offer a deletion we could not carry out. Deleting the app stops any further collection, and both services keep such data only for the period set in their own retention settings.

If you bought the paid features, one more thing does not go with it — the record held by RevenueCat that a purchase happened. That one you can have removed. Open settings in the app, tap your data reference, and send us the identifier it shows, to admin@royalnationllc.com.

That identifier is the only way to find your record, and that is a consequence of the design rather than an inconvenience we failed to remove: the record is anonymous, so there is no name or email address to look you up by. If you have already deleted the app, the reference is gone with it and we have no way to tell which record was yours.

Changes

If a future version of the app collects or transmits anything, this policy will be updated before that version is released, and the change will be described here rather than quietly folded in.

Contact

Questions about this policy: admin@royalnationllc.com


Long Exhale is not a medical device and is not a treatment for a diagnosed sleep disorder.