Commit aeb671a815

aeb671a8152c51c710f82d07cddc8f50c49f39d2

parent: 4da7adabc6

Unsigned

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

chore: adopt synced StoreKit configuration

Xcode synced DomainDig.storekit against App Store Connect, replacing the
hand-authored placeholders with real values: the app's internal ID
(6760368004), the real subscription group ID (22051301), a synchronized
timestamp, and group localizations.

Also registers the file in the project so Xcode can find and re-sync it,
but without target membership. Xcode's default added it to the Resources
build phase of all three targets, which would ship the test configuration
inside the app, widget, and share extension bundles. The scheme
references it by path for the Run action; it does not need bundling.

Layout: unified · split

DomainDig.storekit +113 −47
@@ -9,7 +9,7 @@
9 } 9 }
10 ] 10 ]
11 }, 11 },
12 "identifier" : "A1B2C3D4", 12 "identifier" : "6118B84A",
13 "nonRenewingSubscriptions" : [ 13 "nonRenewingSubscriptions" : [
14 14
15 ], 15 ],
@@ -17,14 +17,14 @@
17 17
18 ], 18 ],
19 "settings" : { 19 "settings" : {
20 "_applicationInternalID" : "", 20 "_applicationInternalID" : "6760368004",
21 "_askToBuyEnabled" : false, 21 "_askToBuyEnabled" : false,
22 "_billingGracePeriodEnabled" : false, 22 "_billingGracePeriodEnabled" : false,
23 "_billingIssuesEnabled" : false, 23 "_billingIssuesEnabled" : false,
24 "_developerTeamID" : "ZCNAX3VL9D", 24 "_developerTeamID" : "ZCNAX3VL9D",
25 "_disableDialogs" : false, 25 "_disableDialogs" : false,
26 "_failTransactionsEnabled" : false, 26 "_failTransactionsEnabled" : false,
27 "_lastSynchronizedDate" : 0, 27 "_lastSynchronizedDate" : 806272934.47084999,
28 "_locale" : "en_US", 28 "_locale" : "en_US",
29 "_renewalBillingIssuesEnabled" : false, 29 "_renewalBillingIssuesEnabled" : false,
30 "_storefront" : "USA", 30 "_storefront" : "USA",
@@ -33,119 +33,185 @@
33 ], 33 ],
34 "_timeRate" : 0 34 "_timeRate" : 0
35 }, 35 },
36 "subscriptionBundleGroups" : [
37
38 ],
36 "subscriptionGroups" : [ 39 "subscriptionGroups" : [
37 { 40 {
38 "id" : "20250720", 41 "id" : "22051301",
39 "localizations" : [ 42 "localizations" : [
40 43 {
44 "description" : "",
45 "displayName" : "DomainDig Pro",
46 "locale" : "en_US"
47 }
41 ], 48 ],
42 "name" : "DomainDig Pro", 49 "name" : "DomainDig Pro",
43 "subscriptions" : [ 50 "subscriptions" : [
44 { 51 {
45 "adHocOffers" : [ 52 "adHocOffers" : [
46 53
54 ],
55 "billingPlans" : [
56 {
57 "billingPlanType" : "BILLED_UPFRONT",
58 "commitmentDisplayPrice" : "59.99",
59 "displayPrice" : "59.99",
60 "internalID" : "6763609513_BILLED_UPFRONT",
61 "isEnabled" : true
62 }
47 ], 63 ],
48 "codeOffers" : [ 64 "codeOffers" : [
49 65
50 ], 66 ],
51 "displayPrice" : "49.99", 67 "displayPrice" : "59.99",
52 "familyShareable" : true, 68 "familyShareable" : true,
53 "groupNumber" : 1, 69 "groupNumber" : 2,
54 "internalID" : "6763610682", 70 "internalID" : "6763609513",
55 "introductoryOffer" : null, 71 "introductoryOffers" : [
72
73 ],
56 "localizations" : [ 74 "localizations" : [
57 { 75 {
58 "description" : "Everything in Pro, plus ownership history, DNS history, extended subdomains, domain pricing, and reputation data.", 76 "description" : "Monitoring, alerts, workflows, and domain scale",
59 "displayName" : "DomainDig Pro+ (Annually)", 77 "displayName" : "DomainDig Pro (Annually)",
60 "locale" : "en_US" 78 "locale" : "en_US"
61 } 79 }
62 ], 80 ],
63 "productID" : "domaindig.proplus.annually", 81 "productID" : "domaindig.pro.annually",
64 "recurringSubscriptionPeriod" : "P1Y", 82 "recurringSubscriptionPeriod" : "P1Y",
65 "referenceName" : "DomainDig Pro+ (Annually)", 83 "referenceName" : "DomainDig Pro (Annually)",
66 "subscriptionGroupID" : "20250720", 84 "subscriptionGroupID" : "22051301",
67 "type" : "RecurringSubscription" 85 "type" : "RecurringSubscription",
86 "winbackOffers" : [
87
88 ]
68 }, 89 },
69 { 90 {
70 "adHocOffers" : [ 91 "adHocOffers" : [
71 92
93 ],
94 "billingPlans" : [
95 {
96 "billingPlanType" : "BILLED_UPFRONT",
97 "commitmentDisplayPrice" : "7.99",
98 "displayPrice" : "7.99",
99 "internalID" : "6763609831_BILLED_UPFRONT",
100 "isEnabled" : true
101 }
72 ], 102 ],
73 "codeOffers" : [ 103 "codeOffers" : [
74 104
75 ], 105 ],
76 "displayPrice" : "4.99", 106 "displayPrice" : "7.99",
77 "familyShareable" : true, 107 "familyShareable" : true,
78 "groupNumber" : 1, 108 "groupNumber" : 2,
79 "internalID" : "2000000002", 109 "internalID" : "6763609831",
80 "introductoryOffer" : null, 110 "introductoryOffers" : [
111
112 ],
81 "localizations" : [ 113 "localizations" : [
82 { 114 {
83 "description" : "Everything in Pro, plus ownership history, DNS history, extended subdomains, domain pricing, and reputation data.", 115 "description" : "Monitoring, alerts, workflows, and domain scale",
84 "displayName" : "DomainDig Pro+ (Monthly)", 116 "displayName" : "DomainDig Pro (Monthly)",
85 "locale" : "en_US" 117 "locale" : "en_US"
86 } 118 }
87 ], 119 ],
88 "productID" : "domaindig.proplus.monthly", 120 "productID" : "domaindig.pro.month",
89 "recurringSubscriptionPeriod" : "P1M", 121 "recurringSubscriptionPeriod" : "P1M",
90 "referenceName" : "DomainDig Pro+ (Monthly)", 122 "referenceName" : "DomainDig Pro (Monthly)",
91 "subscriptionGroupID" : "20250720", 123 "subscriptionGroupID" : "22051301",
92 "type" : "RecurringSubscription" 124 "type" : "RecurringSubscription",
125 "winbackOffers" : [
126
127 ]
93 }, 128 },
94 { 129 {
95 "adHocOffers" : [ 130 "adHocOffers" : [
96 131
132 ],
133 "billingPlans" : [
134 {
135 "billingPlanType" : "BILLED_UPFRONT",
136 "commitmentDisplayPrice" : "119.99",
137 "displayPrice" : "119.99",
138 "internalID" : "6763610682_BILLED_UPFRONT",
139 "isEnabled" : true
140 }
97 ], 141 ],
98 "codeOffers" : [ 142 "codeOffers" : [
99 143
100 ], 144 ],
101 "displayPrice" : "29.99", 145 "displayPrice" : "119.99",
102 "familyShareable" : true, 146 "familyShareable" : true,
103 "groupNumber" : 2, 147 "groupNumber" : 1,
104 "internalID" : "2000000003", 148 "internalID" : "6763610682",
105 "introductoryOffer" : null, 149 "introductoryOffers" : [
150
151 ],
106 "localizations" : [ 152 "localizations" : [
107 { 153 {
108 "description" : "Unlimited tracked domains, automated monitoring, local alerts, workflows, and advanced exports.", 154 "description" : "Advanced domain intelligence and history data",
109 "displayName" : "DomainDig Pro (Annually)", 155 "displayName" : "DomainDig Pro+ (Annually)",
110 "locale" : "en_US" 156 "locale" : "en_US"
111 } 157 }
112 ], 158 ],
113 "productID" : "domaindig.pro.annually", 159 "productID" : "domaindig.proplus.annually",
114 "recurringSubscriptionPeriod" : "P1Y", 160 "recurringSubscriptionPeriod" : "P1Y",
115 "referenceName" : "DomainDig Pro (Annually)", 161 "referenceName" : "DomainDig Pro+ (Annually)",
116 "subscriptionGroupID" : "20250720", 162 "subscriptionGroupID" : "22051301",
117 "type" : "RecurringSubscription" 163 "type" : "RecurringSubscription",
164 "winbackOffers" : [
165
166 ]
118 }, 167 },
119 { 168 {
120 "adHocOffers" : [ 169 "adHocOffers" : [
121 170
171 ],
172 "billingPlans" : [
173 {
174 "billingPlanType" : "BILLED_UPFRONT",
175 "commitmentDisplayPrice" : "14.99",
176 "displayPrice" : "14.99",
177 "internalID" : "6763610379_BILLED_UPFRONT",
178 "isEnabled" : true
179 }
122 ], 180 ],
123 "codeOffers" : [ 181 "codeOffers" : [
124 182
125 ], 183 ],
126 "displayPrice" : "2.99", 184 "displayPrice" : "14.99",
127 "familyShareable" : true, 185 "familyShareable" : true,
128 "groupNumber" : 2, 186 "groupNumber" : 1,
129 "internalID" : "2000000004", 187 "internalID" : "6763610379",
130 "introductoryOffer" : null, 188 "introductoryOffers" : [
189
190 ],
131 "localizations" : [ 191 "localizations" : [
132 { 192 {
133 "description" : "Unlimited tracked domains, automated monitoring, local alerts, workflows, and advanced exports.", 193 "description" : "Advanced domain intelligence and history data",
134 "displayName" : "DomainDig Pro (Monthly)", 194 "displayName" : "DomainDig Pro+ (Monthly)",
135 "locale" : "en_US" 195 "locale" : "en_US"
136 } 196 }
137 ], 197 ],
138 "productID" : "domaindig.pro.month", 198 "productID" : "domaindig.proplus.monthly",
139 "recurringSubscriptionPeriod" : "P1M", 199 "recurringSubscriptionPeriod" : "P1M",
140 "referenceName" : "DomainDig Pro (Monthly)", 200 "referenceName" : "DomainDig Pro+ (Monthly)",
141 "subscriptionGroupID" : "20250720", 201 "subscriptionGroupID" : "22051301",
142 "type" : "RecurringSubscription" 202 "type" : "RecurringSubscription",
203 "winbackOffers" : [
204
205 ]
143 } 206 }
144 ] 207 ]
145 } 208 }
209 ],
210 "subscriptionSuiteGroups" : [
211
146 ], 212 ],
147 "version" : { 213 "version" : {
148 "major" : 5, 214 "major" : 6,
149 "minor" : 0 215 "minor" : 3
150 } 216 }
151} 217}
DomainDig.xcodeproj/project.pbxproj +2
@@ -51,6 +51,7 @@
51/* End PBXCopyFilesBuildPhase section */ 51/* End PBXCopyFilesBuildPhase section */
52 52
53/* Begin PBXFileReference section */ 53/* Begin PBXFileReference section */
54 8B6472EF300EBFA30018E10A /* DomainDig.storekit */ = {isa = PBXFileReference; lastKnownFileType = text; path = DomainDig.storekit; sourceTree = "<group>"; };
54 8B7800692F6090E300933221 /* DomainDig.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DomainDig.app; sourceTree = BUILT_PRODUCTS_DIR; }; 55 8B7800692F6090E300933221 /* DomainDig.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DomainDig.app; sourceTree = BUILT_PRODUCTS_DIR; };
55 8BBFEF032F9874AE00E8E144 /* DomainInspectionService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainInspectionService.swift; sourceTree = "<group>"; }; 56 8BBFEF032F9874AE00E8E144 /* DomainInspectionService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainInspectionService.swift; sourceTree = "<group>"; };
56 8BBFEF042F9874AE00E8E144 /* DomainReportBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainReportBuilder.swift; sourceTree = "<group>"; }; 57 8BBFEF042F9874AE00E8E144 /* DomainReportBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainReportBuilder.swift; sourceTree = "<group>"; };
@@ -149,6 +150,7 @@
149 8B7800602F6090E300933221 = { 150 8B7800602F6090E300933221 = {
150 isa = PBXGroup; 151 isa = PBXGroup;
151 children = ( 152 children = (
153 8B6472EF300EBFA30018E10A /* DomainDig.storekit */,
152 8B78006B2F6090E300933221 /* DomainDig */, 154 8B78006B2F6090E300933221 /* DomainDig */,
153 8BDA0001000000000000000D /* Shared */, 155 8BDA0001000000000000000D /* Shared */,
154 8BDA0001000000000000000E /* DomainDigWidget */, 156 8BDA0001000000000000000E /* DomainDigWidget */,