Fix App Store background location mode
This commit is contained in:
+17
-11
@@ -13,7 +13,9 @@ The two 2026-08-11 blockers are RESOLVED by P0 (live chain):
|
|||||||
on Apple's network see real data.
|
on Apple's network see real data.
|
||||||
- ~~Always-location risk~~ → **Always is requested only when the user enables
|
- ~~Always-location risk~~ → **Always is requested only when the user enables
|
||||||
Alerts** (ProximityMonitor escalates WhenInUse → Always on alert opt-in).
|
Alerts** (ProximityMonitor escalates WhenInUse → Always on alert opt-in).
|
||||||
Onboarding requests WhenInUse only.
|
Onboarding requests WhenInUse only. FuelBoard does **not** declare the
|
||||||
|
persistent real-time background location mode; optional alerts use
|
||||||
|
CoreLocation region monitoring/significant-change behaviour instead.
|
||||||
|
|
||||||
## StoreKit sandbox: verified working configuration and caveats
|
## StoreKit sandbox: verified working configuration and caveats
|
||||||
|
|
||||||
@@ -188,19 +190,23 @@ correct app/team association, and a matching Sandbox Apple Account.
|
|||||||
> Prices are downloaded from the internet up to twice a day; the app filters
|
> Prices are downloaded from the internet up to twice a day; the app filters
|
||||||
> 5/10/15-mile radii on-device and works offline from a bundled snapshot.
|
> 5/10/15-mile radii on-device and works offline from a bundled snapshot.
|
||||||
> Location is used to (a) rank stations by distance and (b) power the
|
> Location is used to (a) rank stations by distance and (b) power the
|
||||||
> optional Alerts feature: when the user enables alerts, the app geofences
|
> optional Alerts feature: when the user enables alerts, the app registers
|
||||||
> the cheapest station in their radius and sends a notification when they
|
> CoreLocation regions around the cheapest station in their radius and sends
|
||||||
> approach it. Always-location is requested only when the user enables
|
> a notification when they approach it. FuelBoard does not use persistent
|
||||||
> alerts. The app also provides a home-screen widget showing the current
|
> real-time background location tracking; it relies on iOS region monitoring
|
||||||
> cheapest station nearby, and a price-history Trends chart for starred
|
> and significant-change behaviour for optional alerts. Always-location is
|
||||||
> stations. All data is UK-wide (Fuel Finder covers England, Scotland, Wales
|
> requested only when the user enables alerts. The app also provides a
|
||||||
> and Northern Ireland); users outside the UK see an empty state explaining
|
> home-screen widget showing the current cheapest station nearby, and a
|
||||||
> this.
|
> price-history Trends chart for starred stations. All data is UK-wide (Fuel
|
||||||
|
> Finder covers England, Scotland, Wales and Northern Ireland); users outside
|
||||||
|
> the UK see an empty state explaining this.
|
||||||
|
|
||||||
## Review risks (know before submitting)
|
## Review risks (know before submitting)
|
||||||
|
|
||||||
- **Always-location (5.1.1)** — the #1 question. The feature is visible
|
- **Always-location (5.1.1 / 2.5.4)** — the feature is visible (Alerts tab)
|
||||||
(Alerts tab) and opt-in; the review notes above say so explicitly.
|
and opt-in; the app does not declare persistent background location mode,
|
||||||
|
and the review notes describe region monitoring/significant-change rather
|
||||||
|
than continuous tracking.
|
||||||
- **Reviewer outside the UK** — empty radius; mitigated by the empty-state
|
- **Reviewer outside the UK** — empty radius; mitigated by the empty-state
|
||||||
task above + review notes.
|
task above + review notes.
|
||||||
- **"Cheapest" claims (2.3.1)** — mitigated by the OGL/footnote task.
|
- **"Cheapest" claims (2.3.1)** — mitigated by the OGL/footnote task.
|
||||||
|
|||||||
@@ -48,7 +48,6 @@
|
|||||||
<key>UIBackgroundModes</key>
|
<key>UIBackgroundModes</key>
|
||||||
<array>
|
<array>
|
||||||
<string>fetch</string>
|
<string>fetch</string>
|
||||||
<string>location</string>
|
|
||||||
</array>
|
</array>
|
||||||
<key>UILaunchScreen</key>
|
<key>UILaunchScreen</key>
|
||||||
<dict/>
|
<dict/>
|
||||||
|
|||||||
+4
-2
@@ -62,8 +62,10 @@ the govuk-API switch (BACKLOG P0). Findings below are ordered by severity.
|
|||||||
### 6. Privacy / permissions — review for App Store
|
### 6. Privacy / permissions — review for App Store
|
||||||
|
|
||||||
- `NSLocationWhenInUseUsageDescription` + `NSLocationAlwaysAndWhenInUseUsageDescription`
|
- `NSLocationWhenInUseUsageDescription` + `NSLocationAlwaysAndWhenInUseUsageDescription`
|
||||||
both present with clear copy; `UIBackgroundModes: location` justified by the
|
both present with clear copy. The app deliberately does not include the
|
||||||
alert feature (geofenced cheapest-station notifications).
|
`location` value in `UIBackgroundModes`; optional alerts use CoreLocation
|
||||||
|
region monitoring/significant-change behaviour rather than persistent
|
||||||
|
real-time background tracking.
|
||||||
- Location is the only sensitive permission requested. No contacts, photos,
|
- Location is the only sensitive permission requested. No contacts, photos,
|
||||||
camera, mic.
|
camera, mic.
|
||||||
- No third-party SDKs → no SDK privacy manifests required.
|
- No third-party SDKs → no SDK privacy manifests required.
|
||||||
|
|||||||
Reference in New Issue
Block a user