1.0.5: Eating out slots, rule violations panel, Crashlytics, search bar fix
- Eating out: tap any empty slot → "Mark as eating out"; shows teal indicator, skipped by auto-assign, counts as complete, tap again to unmark - Rule violations panel: access via wand long-press context menu when conflicts exist; shows all isRuleOverridden slots with Fix (clear) or Ignore (acknowledge) actions - Firebase Crashlytics integrated: CrashlyticsService + dSYM upload build phase, isPremium property tracked per session - PremiumSyncService: extracted premium state machine, StoreKit Transaction.updates listener, isPremium no longer synced via iCloud to avoid stale state - StoreManager: analytics on purchase/restore, bundle ID fallback for product ID lookup - Search bar contrast bug fixed: TextField now has explicit foreground color for dark mode - WelcomeStepView: redesigned onboarding welcome screen with week preview - Version bump: 1.0.5 build 22 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>API_KEY</key>
|
||||
<string>AIzaSyBkDgBKsgudAAwsWErzLviIWm3dir4bHCc</string>
|
||||
<key>GCM_SENDER_ID</key>
|
||||
<string>442954975324</string>
|
||||
<key>PLIST_VERSION</key>
|
||||
<string>1</string>
|
||||
<key>BUNDLE_ID</key>
|
||||
<string>com.alexandrevazquez.mealmood</string>
|
||||
<key>PROJECT_ID</key>
|
||||
<string>mealmood</string>
|
||||
<key>STORAGE_BUCKET</key>
|
||||
<string>mealmood.firebasestorage.app</string>
|
||||
<key>IS_ADS_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_ANALYTICS_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_APPINVITE_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_GCM_ENABLED</key>
|
||||
<true></true>
|
||||
<key>IS_SIGNIN_ENABLED</key>
|
||||
<true></true>
|
||||
<key>GOOGLE_APP_ID</key>
|
||||
<string>1:442954975324:ios:f6fd3a3bf28b6f3d59be99</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -15,9 +15,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0.4</string>
|
||||
<string>1.0.5</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>21</string>
|
||||
<string>22</string>
|
||||
<key>GADApplicationIdentifier</key>
|
||||
<string>ca-app-pub-1549720748100858~9985112590</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
|
||||
@@ -8,5 +8,9 @@
|
||||
</array>
|
||||
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
|
||||
<string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array>
|
||||
<string>group.com.alexandrevazquez.mealmood</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -298,3 +298,15 @@
|
||||
|
||||
// Onboarding preview
|
||||
"onboarding_welcome_preview_label" = "So könnte deine Woche aussehen ✨";
|
||||
|
||||
// Auswärts essen
|
||||
"slot_eating_out" = "Auswärts";
|
||||
"home_mark_eating_out" = "Auswärts essen";
|
||||
"toast_eating_out_marked" = "Als auswärts markiert";
|
||||
|
||||
// Regelkonflikte
|
||||
"violations_panel_title" = "Regelkonflikte";
|
||||
"violations_panel_empty" = "Keine Konflikte diese Woche";
|
||||
"violations_fix" = "Slot leeren";
|
||||
"violations_ignore" = "Ignorieren";
|
||||
"violations_badge" = "%d Konflikt(e)";
|
||||
|
||||
@@ -298,3 +298,15 @@
|
||||
|
||||
// Onboarding preview
|
||||
"onboarding_welcome_preview_label" = "Your week could look like this ✨";
|
||||
|
||||
// Eating out
|
||||
"slot_eating_out" = "Eating out";
|
||||
"home_mark_eating_out" = "Mark as eating out";
|
||||
"toast_eating_out_marked" = "Marked as eating out";
|
||||
|
||||
// Rule violations panel
|
||||
"violations_panel_title" = "Rule conflicts";
|
||||
"violations_panel_empty" = "No rule conflicts this week";
|
||||
"violations_fix" = "Clear slot";
|
||||
"violations_ignore" = "Ignore";
|
||||
"violations_badge" = "%d conflict(s)";
|
||||
|
||||
@@ -298,3 +298,15 @@
|
||||
|
||||
// Onboarding preview
|
||||
"onboarding_welcome_preview_label" = "Tu semana puede quedar así ✨";
|
||||
|
||||
// Comer fuera
|
||||
"slot_eating_out" = "Comiendo fuera";
|
||||
"home_mark_eating_out" = "Marcar como comida fuera";
|
||||
"toast_eating_out_marked" = "Marcado como comida fuera";
|
||||
|
||||
// Panel de conflictos
|
||||
"violations_panel_title" = "Conflictos de reglas";
|
||||
"violations_panel_empty" = "Sin conflictos esta semana";
|
||||
"violations_fix" = "Vaciar hueco";
|
||||
"violations_ignore" = "Ignorar";
|
||||
"violations_badge" = "%d conflicto(s)";
|
||||
|
||||
@@ -298,3 +298,15 @@
|
||||
|
||||
// Onboarding preview
|
||||
"onboarding_welcome_preview_label" = "Votre semaine pourrait ressembler à ça ✨";
|
||||
|
||||
// Repas à l'extérieur
|
||||
"slot_eating_out" = "Repas dehors";
|
||||
"home_mark_eating_out" = "Manger à l'extérieur";
|
||||
"toast_eating_out_marked" = "Repas marqué à l'extérieur";
|
||||
|
||||
// Panneau de conflits
|
||||
"violations_panel_title" = "Conflits de règles";
|
||||
"violations_panel_empty" = "Aucun conflit cette semaine";
|
||||
"violations_fix" = "Vider le créneau";
|
||||
"violations_ignore" = "Ignorer";
|
||||
"violations_badge" = "%d conflit(s)";
|
||||
|
||||
@@ -298,3 +298,15 @@
|
||||
|
||||
// Onboarding preview
|
||||
"onboarding_welcome_preview_label" = "La tua settimana potrebbe essere così ✨";
|
||||
|
||||
// Mangiare fuori
|
||||
"slot_eating_out" = "Fuori casa";
|
||||
"home_mark_eating_out" = "Mangiare fuori";
|
||||
"toast_eating_out_marked" = "Segnato come fuori casa";
|
||||
|
||||
// Pannello conflitti
|
||||
"violations_panel_title" = "Conflitti di regole";
|
||||
"violations_panel_empty" = "Nessun conflitto questa settimana";
|
||||
"violations_fix" = "Svuota slot";
|
||||
"violations_ignore" = "Ignora";
|
||||
"violations_badge" = "%d conflitto/i";
|
||||
|
||||
@@ -298,3 +298,15 @@
|
||||
|
||||
// Onboarding preview
|
||||
"onboarding_welcome_preview_label" = "Sua semana pode ficar assim ✨";
|
||||
|
||||
// Comer fora
|
||||
"slot_eating_out" = "Comendo fora";
|
||||
"home_mark_eating_out" = "Comer fora";
|
||||
"toast_eating_out_marked" = "Marcado como comer fora";
|
||||
|
||||
// Painel de conflitos
|
||||
"violations_panel_title" = "Conflitos de regras";
|
||||
"violations_panel_empty" = "Sem conflitos esta semana";
|
||||
"violations_fix" = "Limpar slot";
|
||||
"violations_ignore" = "Ignorar";
|
||||
"violations_badge" = "%d conflito(s)";
|
||||
|
||||
Reference in New Issue
Block a user