1.1.2 (47): fix subscription purchase button fallback
Remove legacy CONSUMABLE fallback from monthlyProduct — when the subscription fails to load, the UI now shows the retry state instead of silently offering the legacy one-time product for purchase. Legacy purchasers retain access via hasActiveSubscription() as before. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -860,7 +860,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements;
|
CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
CURRENT_PROJECT_VERSION = 46;
|
CURRENT_PROJECT_VERSION = 47;
|
||||||
DEVELOPMENT_TEAM = 2825Q76T7H;
|
DEVELOPMENT_TEAM = 2825Q76T7H;
|
||||||
GENERATE_INFOPLIST_FILE = NO;
|
GENERATE_INFOPLIST_FILE = NO;
|
||||||
INFOPLIST_FILE = MealMood/Resources/Info.plist;
|
INFOPLIST_FILE = MealMood/Resources/Info.plist;
|
||||||
@@ -965,7 +965,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements;
|
CODE_SIGN_ENTITLEMENTS = MealMood/Resources/MealMood.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
CURRENT_PROJECT_VERSION = 46;
|
CURRENT_PROJECT_VERSION = 47;
|
||||||
DEVELOPMENT_TEAM = 2825Q76T7H;
|
DEVELOPMENT_TEAM = 2825Q76T7H;
|
||||||
GENERATE_INFOPLIST_FILE = NO;
|
GENERATE_INFOPLIST_FILE = NO;
|
||||||
INFOPLIST_FILE = MealMood/Resources/Info.plist;
|
INFOPLIST_FILE = MealMood/Resources/Info.plist;
|
||||||
|
|||||||
@@ -15,9 +15,9 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.1.1</string>
|
<string>1.1.2</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>46</string>
|
<string>47</string>
|
||||||
<key>GADApplicationIdentifier</key>
|
<key>GADApplicationIdentifier</key>
|
||||||
<string>ca-app-pub-1549720748100858~9985112590</string>
|
<string>ca-app-pub-1549720748100858~9985112590</string>
|
||||||
<key>ITSAppUsesNonExemptEncryption</key>
|
<key>ITSAppUsesNonExemptEncryption</key>
|
||||||
|
|||||||
@@ -120,13 +120,7 @@ final class StoreManager: ObservableObject {
|
|||||||
if let match = products.first(where: { $0.id == Self.monthlyProductId && $0.type == .autoRenewable }) {
|
if let match = products.first(where: { $0.id == Self.monthlyProductId && $0.type == .autoRenewable }) {
|
||||||
return match
|
return match
|
||||||
}
|
}
|
||||||
if let match = products.first(where: { $0.type == .autoRenewable }) {
|
return products.first(where: { $0.type == .autoRenewable })
|
||||||
return match
|
|
||||||
}
|
|
||||||
if let match = products.first(where: { $0.id == Self.legacyOneTimeProductId }) {
|
|
||||||
return match
|
|
||||||
}
|
|
||||||
return products.first
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var debugProductIds: [String] { productIds }
|
var debugProductIds: [String] { productIds }
|
||||||
|
|||||||
@@ -15,9 +15,9 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>XPC!</string>
|
<string>XPC!</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.1.1</string>
|
<string>1.1.2</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>46</string>
|
<string>47</string>
|
||||||
<key>NSExtension</key>
|
<key>NSExtension</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSExtensionPointIdentifier</key>
|
<key>NSExtensionPointIdentifier</key>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
NEU in 1.1.0: Premium ist jetzt ein Monatsabo. Bestehende Einmalkäufer behalten ihren vollen Zugang automatisch.
|
MealMood Premium: unbegrenzte Gerichte, Planung & Export für 2,99 €/Monat. Bestehende Einmalkäufer behalten ihren vollen Zugang automatisch.
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
Neu in Version 1.1.0:
|
Korrekturen in Version 1.1.2:
|
||||||
|
|
||||||
• Premium ist jetzt ein monatliches Abo — unbegrenzte Gerichte, Planung und Export für 2,99 €/Monat.
|
• Fehler behoben, bei dem die Premium-Abonnement-Schaltfläche auf einigen Geräten nicht korrekt angezeigt wurde.
|
||||||
• Bestehende Einmalkäufer behalten ihren vollen Zugang automatisch — keine Aktion erforderlich.
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
NEW in 1.1.0: Premium is now a monthly subscription. Existing lifetime purchasers keep full access automatically.
|
MealMood Premium: unlimited dishes, weekly planning & export for $2.99/month. Existing lifetime purchasers keep full access automatically.
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
New in 1.1.0:
|
Fixes in 1.1.2:
|
||||||
|
|
||||||
• Premium is now a monthly subscription — unlimited dishes, planning, and export for $2.99/month.
|
• Fixed an issue where the Premium subscription button would not appear correctly on some devices, preventing users from subscribing.
|
||||||
• Existing lifetime purchasers keep full access automatically, no action needed.
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
NUEVO en 1.1.0: Premium ahora es una suscripción mensual. Los compradores previos conservan su acceso completo automáticamente.
|
MealMood Premium: platos ilimitados, planificación y exportación por 2,99 €/mes. Los compradores previos conservan su acceso completo automáticamente.
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
Novedades en 1.1.0:
|
Correcciones en 1.1.2:
|
||||||
|
|
||||||
• Premium ahora es una suscripción mensual — platos ilimitados, planificación y exportación por 2,99 €/mes.
|
• Solucionado un problema por el que el botón de suscripción Premium no aparecía correctamente en algunos dispositivos, impidiendo realizar la compra.
|
||||||
• Los usuarios con compra única previa conservan el acceso completo de forma automática.
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
NOUVEAU v1.1.0 : Premium est désormais un abonnement mensuel. Les acheteurs existants conservent automatiquement leur accès complet.
|
MealMood Premium : plats illimités, planification et export pour 2,99 €/mois. Les acheteurs existants conservent automatiquement leur accès complet.
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
Nouveautés dans la version 1.1.0 :
|
Correctifs dans la version 1.1.2 :
|
||||||
|
|
||||||
• Premium est désormais un abonnement mensuel — plats illimités, planification et export pour 2,99 €/mois.
|
• Correction d'un problème où le bouton d'abonnement Premium ne s'affichait pas correctement sur certains appareils.
|
||||||
• Les utilisateurs ayant effectué un achat unique conservent automatiquement leur accès complet.
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
NOVITÀ v1.1.0: Premium è ora un abbonamento mensile. Gli acquirenti precedenti mantengono automaticamente l'accesso completo.
|
MealMood Premium: piatti illimitati, pianificazione ed esportazione a 2,99 €/mese. Gli acquirenti precedenti mantengono automaticamente l'accesso completo.
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
Novità nella versione 1.1.0:
|
Correzioni nella versione 1.1.2:
|
||||||
|
|
||||||
• Premium è ora un abbonamento mensile — piatti illimitati, pianificazione ed esportazione a 2,99 €/mese.
|
• Risolto un problema per cui il pulsante di abbonamento Premium non veniva visualizzato correttamente su alcuni dispositivi.
|
||||||
• Gli utenti con acquisto singolo precedente mantengono automaticamente l'accesso completo.
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
NOVIDADE 1.1.0: Premium agora é uma assinatura mensal. Compradores anteriores mantêm o acesso completo automaticamente.
|
MealMood Premium: pratos ilimitados, planejamento e exportação por R$ 2,99/mês. Compradores anteriores mantêm o acesso completo automaticamente.
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
Novidades na versão 1.1.0:
|
Correções na versão 1.1.2:
|
||||||
|
|
||||||
• Premium agora é uma assinatura mensal — pratos ilimitados, planejamento e exportação por R$ 2,99/mês.
|
• Corrigido um problema em que o botão de assinatura Premium não aparecia corretamente em alguns dispositivos.
|
||||||
• Usuários com compra única anterior mantêm o acesso completo automaticamente.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user