Commit 024f611fbb

024f611fbbf4d2405a10d649a59968617321732a

parent: d69aa35d88

Unsigned

cmc <hello@cleberg.net> · 2026-07-20 19:03 UTC

fix: match IAP product IDs to App Store Connect

The four product ID constants did not match the auto-renewable
subscriptions configured in App Store Connect, so Product.products(for:)
returned an empty array and tier(for:) resolved every purchase to .free.

Product IDs are permanent in App Store Connect, so the code is corrected
to match the configured values rather than the reverse:

  domaindig.pro.monthly      -> domaindig.pro.month
  domaindig.pro.yearly       -> domaindig.pro.annually
  domaindig.dataplus.monthly -> domaindig.proplus.monthly
  domaindig.dataplus.yearly  -> domaindig.proplus.annually

Layout: unified · split

DomainDig/PurchaseService.swift +4 −4
@@ -15,10 +15,10 @@ final class PurchaseService {
15 } 15 }
16 16
17 static let shared = PurchaseService() 17 static let shared = PurchaseService()
18 static let monthlyProductID = "domaindig.pro.monthly" 18 static let monthlyProductID = "domaindig.pro.month"
19 static let yearlyProductID = "domaindig.pro.yearly" 19 static let yearlyProductID = "domaindig.pro.annually"
20 static let proPlusMonthlyProductID = "domaindig.dataplus.monthly" 20 static let proPlusMonthlyProductID = "domaindig.proplus.monthly"
21 static let proPlusYearlyProductID = "domaindig.dataplus.yearly" 21 static let proPlusYearlyProductID = "domaindig.proplus.annually"
22 static let productIDs = [ 22 static let productIDs = [
23 monthlyProductID, 23 monthlyProductID,
24 yearlyProductID, 24 yearlyProductID,