UpUp Privacy Policy
Effective:
In one line: UpUp works on your iPhone with an optional account and no third-party analytics SDK. When sharing is enabled, it sends de-identified usage and diagnostic events to us. Log files are sent only after you choose to send diagnostic logs or feedback.
1. What the app accesses, and why
- Alarms (AlarmKit). Needed to ring at the time you set, including in Silent and Focus modes. Alarm labels stay on your device. With sharing enabled, alarm times and other configuration are uploaded as diagnostic data, as described in section 2.
- Front camera (TrueDepth face tracking). Used only on the push-up screen to measure the distance between your face and the phone so reps can be counted. Frames are processed in memory and discarded immediately. No photo or video is saved, shown, or transmitted.
- Motion sensors. The accelerometer confirms the phone is lying still during push-ups and counts shakes for the Shake task. Readings are not stored.
- Location (only after you allow it). After you stop an alarm, UpUp takes one location fix to show the weather where you woke up. The coordinates are sent to Apple Weather (WeatherKit) and to the World Air Quality Index project (WAQI) to fetch the forecast and air quality, and are not kept beyond the weather report cached on your device. UpUp only asks for location when you tap the weather line on the home screen, tap “Allow location” on the weather page, or open the weather after stopping an alarm. If you would rather not share your location, pick a city on the weather page instead: the app then never asks for location.
- City search. When you type a city on the weather page, the text you type is sent to Open-Meteo’s geocoding service to find matching places. Nothing else is sent, and the city you pick is stored only on your device.
- Weather and air quality. Forecasts come from Apple Weather, air quality from WAQI, city search from Open-Meteo. See Attribution.
- Purchases (StoreKit). UpUp PRO is sold through Apple. Apple handles payment; we never see your payment details. The app only checks whether an active subscription exists.
2. Diagnostics we collect (and how to turn them off)
To find out why an alarm did not ring, or which tasks people actually use, the app sends us diagnostic and usage data identified by a random installation ID. This is our own code talking to our own server (log.centneo.cn, hosted on Alibaba Cloud); there is no third-party analytics SDK, no advertising identifier, and no tracking across apps.
- Usage events. What happened, not who: an alarm was saved (time, repeat days, task type, sound), an alarm rang, Stop was pressed, a task was finished and how long it took, the paywall was shown, a purchase (and whether it was a free trial) succeeded or failed, the weather page loaded. Each event carries a random install ID, the app version, iOS version, device model, language and region. Never your alarm labels, never your location, never the code you scan.
- Configuration snapshot. When configuration changes, or at most once a day when unchanged: your list of alarms (times, days, tasks, sounds, on/off), whether alarm and location permissions are granted, your plan (free/PRO), and your current streak.
- Apple Ads attribution, once. On first launch the app asks Apple’s AdServices framework for a one-time token and sends it to Apple (
api-adservices.apple.com). Apple answers whether the install came from an Apple Ads search ad and, if so, the campaign, ad group and keyword IDs; we record that answer as one usage event. No advertising identifier, no tracking across apps, and it is skipped when diagnostics are off. - Purchase attribution. When usage and diagnostic sharing is enabled, purchases include your random installation ID as Apple’s appAccountToken. Our service verifies Apple’s signed transaction notifications and uses this token to associate purchases, renewals and refunds with the installation’s acquisition source. Transaction amounts and currencies are recorded; we do not receive payment card information. With sharing disabled, new purchases omit this analytics token. Historical transactions may already contain a token. Search Match does not reveal a person’s exact search query.
- Purchase diagnostics. Structured events record product availability, purchase attempts, Apple results, transaction verification, PRO entitlement confirmation and account synchronization. They may include an App Store storefront country code, transaction environment, allowlisted error domains and numeric error codes. A random purchase-attempt ID associates the steps with a random installation ID; neither is an Apple transaction ID or account ID. No receipt, payment information, credentials or raw error text is included. Events are queued on the device and retried asynchronously when sharing is enabled. A missing event is not treated as proof of a failed purchase.
- Feedback and log files, only when you send them. Settings → “Send feedback” uploads what you type (problem type, description), up to three screenshots you pick from your photo library, a sanitized diagnostic attachment containing allowlisted alarm, permission and purchase-error records (free-form log messages and unknown fields are omitted) and, optionally, the email address you type in. The photo picker runs outside the app: UpUp only receives the screenshots you choose. The feedback content and attached files are not uploaded until you tap Send.
The install ID is a random number created when the app is first opened; it is not derived from your device or Apple ID and is discarded when you delete the app. Usage events, configuration snapshots and feedback are kept for up to 12 months and used only to fix bugs and improve UpUp. Settings → Diagnostics → “Share usage & diagnostics” turns usage events and configuration snapshots off; queued data is cleared and is not sent afterwards. Severe purchase or alarm scheduling problems may offer a diagnostic-log upload. Logs are sent only after you explicitly choose “Send diagnostic logs”, independently of the sharing setting. Uploading does not immediately resolve the problem.
3. Optional account
UpUp works fully without an account. If you choose Settings → Account → Sign in, you can use Sign in with Apple or an email code. We then keep, on our account server (hosted on Alibaba Cloud and shared with our app SuitBite, so one account works in both): your account ID (Apple’s per-app user identifier, or an ID derived from your email address), your email address, the name Apple shares only if you allow it, and a login session. Verification codes are sent from [email protected], expire after 5 minutes and are deleted once used. Signing in does not upload your alarms, streak or history. Settings → Account → “Delete Account” removes the account and everything stored under it on our servers.
4. What we do not do
- No forced sign-up. An account is optional (section 3). An email address typed into the feedback form is only used to reply to you.
- No third-party analytics, advertising, or tracking. Besides our diagnostics endpoint and the one-time Apple Ads attribution request to Apple, the app's only network calls are to Apple Weather and WAQI for the weather page (carrying nothing but coordinates) and to Open-Meteo for city search (carrying nothing but the text you type).
- No cloud sync: alarms, streaks and history live in the app's local storage and are deleted when you delete the app, whether or not you are signed in.
5. Data you can see
Your wake-up history (time of each ring and when the task was finished) is kept on the device to compute your streak. Deleting the app removes it.
6. Children
UpUp is not directed at children under 13 and does not knowingly collect information from them.
7. Changes
If this policy changes, the new version will be posted here with a new effective date.