App Store prep: privacy manifests, 1.0.1 (2), OGL attribution, UK empty state, screenshot harness
- PrivacyInfo.xcprivacy in app + widget targets (UserDefaults 1C8F.1; app declares Location linked + Diagnostics not-linked, no tracking) - Version bump 1.0.1 (2) in App + Widget plists - Settings → Data source footer: OGL attribution + 'refresh up to twice a day' - Stations empty state: friendly UK-only explainer + 'Browse all UK stations' - ContentView launch-arg harness (pattern of -showKeySheet): -skipOnboarding and -tab stations|favourites|alerts|settings for screenshot capture - APPSTORE.md updated (blockers struck, tasks done, yuzu-hub workflow) - BACKLOG.md hygiene: GitHub-first header, Trends merged note, offline-first-run DONE
This commit is contained in:
+24
-17
@@ -24,9 +24,8 @@ The two 2026-08-11 blockers are RESOLVED by P0 (live chain):
|
||||
2. **[USER] Register App ID `com.apt.fuelboard`** in the developer portal,
|
||||
with the **App Group `group.com.apt.fuelboard`** capability enabled (the
|
||||
widget + app-group cache depend on it).
|
||||
3. **[ME] `PrivacyInfo.xcprivacy`** — REQUIRED for all submissions since
|
||||
May 2024; the repo has none. Add to the app target (Xcode can generate;
|
||||
must declare location-data reasons + any required-reason APIs used).
|
||||
3. ~~[ME] `PrivacyInfo.xcprivacy`~~ — **DONE 2026-08-16** (app + widget
|
||||
manifests added; UserDefaults `1C8F.1`, Location + Diagnostics declared).
|
||||
4. **[ME] Real Distribution signing** — Distribution certificate + App Store
|
||||
provisioning profile (or Xcode automatic signing once the account is in
|
||||
Xcode); then `xcodebuild archive` (no more `CODE_SIGNING_ALLOWED=NO`).
|
||||
@@ -35,21 +34,29 @@ The two 2026-08-11 blockers are RESOLVED by P0 (live chain):
|
||||
|
||||
## Required tasks — owner [ME] (technical, do after account exists)
|
||||
|
||||
- [ ] PrivacyInfo.xcprivacy (blocker #3 above)
|
||||
- [ ] Distribution archive + TestFlight upload
|
||||
- [ ] Bump version: `CFBundleShortVersionString 1.0.1` / `CFBundleVersion 2`
|
||||
- [ ] OGL attribution + "prices updated twice daily" footnote in
|
||||
Settings → About (2.3.1 hygiene; data is 12 h-cache, UI says "cheapest")
|
||||
- [ ] Out-of-UK empty state: reviewer may not be in the UK → friendlier copy
|
||||
than "No X stations found." (explain UK-only data + browse-all option)
|
||||
- [ ] Optional hardening: gate the dev-only surface (Settings Debug section,
|
||||
`fuelboard.relayFallback`, FuelBeacon, relay IP) behind `#if DEBUG` so
|
||||
the Release binary ships clean — currently Release contains the hidden
|
||||
dev flag + a private IP string (no credentials, but a "test build"
|
||||
smell; not a rejection risk on its own)
|
||||
- [x] **PrivacyInfo.xcprivacy** — app + widget manifests added (2026-08-16):
|
||||
UserDefaults reason `1C8F.1`; app also declares Location (linked, not
|
||||
tracking) + Diagnostics (not linked, not tracking — the dev beacon)
|
||||
- [ ] Distribution archive + TestFlight upload (needs Apple account)
|
||||
- [x] **Version bump** → `1.0.1` (build 2), app + widget plists
|
||||
- [x] **OGL attribution** — Settings → Data source footer now reads "Prices
|
||||
use the UK Fuel Finder dataset (Open Government Licence) and refresh
|
||||
up to twice a day." (2.3.1 hygiene)
|
||||
- [x] **Out-of-UK empty state** — "No X stations within N miles" + UK-only
|
||||
explainer + "Browse all UK stations" button (switches to Closest)
|
||||
- [ ] ~~Gate dev surface behind #if DEBUG~~ **DECLINED — kept in Release on
|
||||
purpose**: the user's home-testing installs the Release IPA and toggles
|
||||
`fuelboard.relayFallback` via Settings → Debug (revealed only by tapping
|
||||
About → Version ×5 — invisible to reviewers; no credentials involved).
|
||||
Gating it out of Release would break that workflow for zero review gain.
|
||||
- [ ] Final pass: `swift test` green (95 tests), archive smoke test on device
|
||||
- [ ] Capture screenshots from simulator (6.7″ 1290×2796 required; 6.5″
|
||||
1242×2688 recommended) for App Store Connect
|
||||
- [ ] ~~Capture screenshots from simulator~~ **RAW CAPTURES DONE (2026-08-16)** —
|
||||
native 6.9″ 1320×2868 PNGs of all four tabs (Stations, Favourites,
|
||||
Alerts, Settings) at `/tmp/fuelboard-shots/asc/`; assembled into ASC
|
||||
frames by the user in the yuzu-hub App Store Screenshot Generator
|
||||
(https://yuzu-hub.github.io/appscreen/). Screenshot harness: launch
|
||||
args `-skipOnboarding` / `-tab stations|favourites|alerts|settings`
|
||||
(ContentView, same pattern as `-showKeySheet`).
|
||||
|
||||
## Required tasks — owner [USER] (App Store Connect, cannot be done by me)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user