feat(account): add QR invitation poster and 8-character invitation codes

- Invite opens an appearance-matched poster with the app icon, inviter name,
  QR code, and short code; tap for a full-brightness QR view; save (add-only
  Photos access), share, or copy the link. Mac shows the poster in a popover
  and can save it as PNG.
- Accounts get look-alike-free 8-character codes. "I have a code" accepts a
  code, link, or pasted message during the server-defined binding window.
- Permanently rejected redemptions show a specific message and drop the
  stored code instead of retrying on every sign-in.
This commit is contained in:
2026-10-20 20:06:36 +02:00
parent eaacc35cf7
commit 03bfbbe08b
26 changed files with 2269 additions and 86 deletions
+2
View File
@@ -188,6 +188,7 @@ targets:
NSContactsUsageDescription: "OSGKeyboard uses Contacts only when you choose Create Contact for a copied phone number."
NSRemindersFullAccessUsageDescription: "OSGKeyboard adds reminders only when you choose Extract To-dos for copied text."
NSCalendarsFullAccessUsageDescription: "OSGKeyboard adds calendar events only when you choose Extract Events for copied text."
NSPhotoLibraryAddUsageDescription: "OSGKeyboard saves your invitation poster to Photos only when you choose Save Image."
UIBackgroundModes:
- audio
BGTaskSchedulerPermittedIdentifiers:
@@ -579,6 +580,7 @@ targets:
- path: OSGKeyboard/Views/Account/AccountCreditPurchaseManager.swift
- path: OSGKeyboard/Views/Account/LiveAccountServices.swift
- path: OSGKeyboard/Views/Account/ReferralProfileViewModel.swift
- path: OSGKeyboard/Views/Account/InvitePoster.swift
- path: OSGKeyboard/Views/Account/AccountAppleAuthorizationFactories.swift
- path: OSGKeyboard/Services/AccountAnalyticsBearerBridge.swift
- path: OSGKeyboardHostSupport