1.1.5: fix activation analytics blind spots + purchase environment tagging

- dish_added now carries a `source` param; onboarding-created dishes fire
  it with source="onboarding" (previously untracked, undercounting activation)
- onboarding_completed now reports dish_count
- premium_purchased tagged with StoreKit environment (production/sandbox/xcode)
  so test purchases can be excluded from conversion metrics
- add .gitignore to keep signing secrets (.p12/.cer/.mobileprovision) and
  build artifacts out of the repo
- document branch↔MARKETING_VERSION naming convention

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UtWT52pAE91D7mbDda1cAM
This commit is contained in:
alexandrev-tibco
2026-07-02 13:26:45 +02:00
parent 95f43c7f23
commit 9cadc1ad18
5 changed files with 59 additions and 9 deletions
+9 -1
View File
@@ -4,9 +4,17 @@
- **Name**: MealMood: Family Meal Planner
- **Bundle ID**: com.alexandrevazquez.mealmood
- **Platform**: iOS/iPadOS (also runs as iOS app on Mac)
- **Current version**: 1.1.0
- **Current version**: 1.1.5
- **Main branch**: `1.0.1` (production), feature branches named after versions
### Branch ↔ version convention (IMPORTANT)
The active dev branch is named after the **current** `MARKETING_VERSION`, not the one it was created with. Whenever the iOS app version changes, **rename the branch to match**:
```bash
# after bumping MARKETING_VERSION in the Xcode project to e.g. 1.1.6
git branch -m <old-version> 1.1.6 # e.g. git branch -m 1.1.5 1.1.6
```
Right now: `MARKETING_VERSION = 1.1.5` → active branch is `1.1.5`. Keep them in sync. (The build number bump within the same version does NOT rename the branch — only a version change does.)
## Credentials — all managed via `pass` (GPG-encrypted, syncs to Gitea)
Never hardcode credentials. Always read from `pass`: