@milkinteractive/react-native-age-range 1.0.6 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -178,7 +178,7 @@ public class StoreAgeSignalsNativeModulesSwift: NSObject {
178
178
  reject: @escaping RCTPromiseRejectBlock
179
179
  ) {
180
180
  #if compiler(>=6.0) && canImport(PermissionKit)
181
- if #available(iOS 26.0, *) {
181
+ if #available(iOS 26.2, *) {
182
182
  Task { @MainActor in
183
183
  do {
184
184
  guard let viewController = self.topViewController() else {
@@ -186,10 +186,10 @@ public class StoreAgeSignalsNativeModulesSwift: NSObject {
186
186
  return
187
187
  }
188
188
 
189
- var topic = SignificantAppUpdateTopic()
189
+ var topic = SignificantAppUpdateTopic(description: "App update requires approval")
190
190
  var question = PermissionQuestion(significantAppUpdateTopic: topic)
191
191
 
192
- try await AskCenter.current.ask(question: question, in: viewController)
192
+ try await AskCenter.shared.ask(question, in: viewController)
193
193
 
194
194
  // If we get here without error, the request was shown successfully
195
195
  // The actual approval status is delivered asynchronously via updates
@@ -233,8 +233,8 @@ public class StoreAgeSignalsNativeModulesSwift: NSObject {
233
233
  return
234
234
  }
235
235
 
236
- // Parse contacts from JS
237
- var personInfoList: [PersonInformation] = []
236
+ // Parse contacts from JS into CommunicationHandles
237
+ var handlesList: [CommunicationHandle] = []
238
238
  for contact in contacts {
239
239
  guard let contactDict = contact as? [String: Any],
240
240
  let handleValue = contactDict["handle"] as? String,
@@ -246,57 +246,22 @@ public class StoreAgeSignalsNativeModulesSwift: NSObject {
246
246
  switch handleKindStr {
247
247
  case "phoneNumber":
248
248
  handleKind = .phoneNumber
249
- case "email":
250
- handleKind = .email
249
+ case "emailAddress":
250
+ handleKind = .emailAddress
251
251
  default:
252
252
  handleKind = .custom
253
253
  }
254
254
 
255
255
  let handle = CommunicationHandle(value: handleValue, kind: handleKind)
256
-
257
- // Optional display name
258
- var nameComponents: PersonNameComponents? = nil
259
- if let displayName = contactDict["displayName"] as? String {
260
- var components = PersonNameComponents()
261
- components.nickname = displayName
262
- nameComponents = components
263
- }
264
-
265
- let personInfo = PersonInformation(handle: handle, nameComponents: nameComponents)
266
- personInfoList.append(personInfo)
256
+ handlesList.append(handle)
267
257
  }
268
258
 
269
- guard !personInfoList.isEmpty else {
259
+ guard !handlesList.isEmpty else {
270
260
  reject("ERR_IOS_COMM_PERMISSION", "No valid contacts provided", nil)
271
261
  return
272
262
  }
273
263
 
274
- // Parse actions
275
- var communicationActions: Set<CommunicationTopic.Action> = []
276
- for action in actions {
277
- if let actionStr = action as? String {
278
- switch actionStr {
279
- case "message":
280
- communicationActions.insert(.message)
281
- case "call":
282
- communicationActions.insert(.call)
283
- case "video":
284
- communicationActions.insert(.video)
285
- default:
286
- break
287
- }
288
- }
289
- }
290
-
291
- // Default to message if no actions specified
292
- if communicationActions.isEmpty {
293
- communicationActions.insert(.message)
294
- }
295
-
296
- var topic = CommunicationTopic(personInformation: personInfoList)
297
- topic.actions = communicationActions
298
-
299
- var question = PermissionQuestion(communicationTopic: topic)
264
+ let question = PermissionQuestion(handles: handlesList)
300
265
 
301
266
  try await CommunicationLimits.current.ask(question, in: viewController)
302
267
 
@@ -349,7 +314,7 @@ public class StoreAgeSignalsNativeModulesSwift: NSObject {
349
314
  case "phoneNumber":
350
315
  handleKind = .phoneNumber
351
316
  case "email":
352
- handleKind = .email
317
+ handleKind = .custom
353
318
  default:
354
319
  handleKind = .custom
355
320
  }
@@ -107,7 +107,7 @@ function getAndroidPlayAgeRangeStatus(config) {
107
107
  }
108
108
 
109
109
  // Minimum iOS version required for DeclaredAgeRange API
110
- const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26;
110
+ const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26.0;
111
111
 
112
112
  /**
113
113
  * Requests age range declaration from iOS Declared Age Range API.
@@ -130,7 +130,7 @@ function requestIOSDeclaredAgeRange(firstThresholdAge, secondThresholdAge, third
130
130
  }
131
131
 
132
132
  // Early return for iOS versions below 26 to prevent native bridge errors
133
- const iosVersion = parseInt(String(_reactNative.Platform.Version), 10);
133
+ const iosVersion = parseFloat(String(_reactNative.Platform.Version));
134
134
  if (iosVersion < IOS_MIN_VERSION_DECLARED_AGE_RANGE) {
135
135
  return Promise.resolve({
136
136
  status: null,
@@ -145,7 +145,7 @@ function requestIOSDeclaredAgeRange(firstThresholdAge, secondThresholdAge, third
145
145
  }
146
146
 
147
147
  // Minimum iOS version required for isEligibleForAgeFeatures API
148
- const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26;
148
+ const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26.2;
149
149
 
150
150
  /**
151
151
  * Checks if the current user is eligible for age verification features on iOS.
@@ -163,7 +163,7 @@ function isIOSEligibleForAgeFeatures() {
163
163
  }
164
164
 
165
165
  // Early return for iOS versions below 26 to prevent native bridge errors
166
- const iosVersion = parseInt(String(_reactNative.Platform.Version), 10);
166
+ const iosVersion = parseFloat(String(_reactNative.Platform.Version));
167
167
  if (iosVersion < IOS_MIN_VERSION_ELIGIBLE_CHECK) {
168
168
  return Promise.resolve({
169
169
  isEligible: false,
@@ -190,7 +190,10 @@ function isAndroidEligibleForAgeFeatures() {
190
190
  return StoreAgeSignalsNativeModules.isEligibleForAgeFeatures();
191
191
  }
192
192
 
193
- // ========== PERMISSIONKIT FUNCTIONS (iOS 26+) ==========
193
+ // ========== PERMISSIONKIT FUNCTIONS (iOS 26.2+) ==========
194
+
195
+ // Minimum iOS version required for PermissionKit APIs
196
+ const IOS_MIN_VERSION_PERMISSIONKIT = 26.2;
194
197
 
195
198
  /**
196
199
  * Requests parental approval for significant app changes (iOS PermissionKit).
@@ -202,7 +205,7 @@ function isAndroidEligibleForAgeFeatures() {
202
205
  * The parent/guardian will receive a notification via Messages.
203
206
  *
204
207
  * @platform ios
205
- * @requires iOS 26.0+
208
+ * @requires iOS 26.2+
206
209
  * @returns Promise<SignificantChangeResult> - Contains status ('pending', 'approved', 'denied') and error
207
210
  *
208
211
  * @example
@@ -216,6 +219,7 @@ function isAndroidEligibleForAgeFeatures() {
216
219
  * }
217
220
  * ```
218
221
  */
222
+
219
223
  function requestIOSSignificantChangeApproval() {
220
224
  if (_reactNative.Platform.OS !== 'ios') {
221
225
  return Promise.resolve({
@@ -223,6 +227,13 @@ function requestIOSSignificantChangeApproval() {
223
227
  error: 'This method is only available on iOS'
224
228
  });
225
229
  }
230
+ const iosVersion = parseFloat(String(_reactNative.Platform.Version));
231
+ if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
232
+ return Promise.resolve({
233
+ status: null,
234
+ error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
235
+ });
236
+ }
226
237
  return StoreAgeSignalsNativeModules.requestSignificantChangeApproval();
227
238
  }
228
239
 
@@ -259,6 +270,13 @@ function requestIOSCommunicationPermission(contacts, actions) {
259
270
  error: 'This method is only available on iOS'
260
271
  });
261
272
  }
273
+ const iosVersion = parseFloat(String(_reactNative.Platform.Version));
274
+ if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
275
+ return Promise.resolve({
276
+ granted: false,
277
+ error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
278
+ });
279
+ }
262
280
  return StoreAgeSignalsNativeModules.requestCommunicationPermission(contacts, actions || ['message']);
263
281
  }
264
282
 
@@ -297,6 +315,13 @@ function getIOSKnownCommunicationHandles(handles) {
297
315
  error: 'This method is only available on iOS'
298
316
  });
299
317
  }
318
+ const iosVersion = parseFloat(String(_reactNative.Platform.Version));
319
+ if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
320
+ return Promise.resolve({
321
+ knownHandles: [],
322
+ error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
323
+ });
324
+ }
300
325
  return StoreAgeSignalsNativeModules.getKnownCommunicationHandles(handles);
301
326
  }
302
327
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","StoreAgeSignalsNativeModules","NativeModules","Proxy","get","Error","getAndroidPlayAgeRangeStatus","config","OS","Promise","resolve","installId","userStatus","error","IOS_MIN_VERSION_DECLARED_AGE_RANGE","requestIOSDeclaredAgeRange","firstThresholdAge","secondThresholdAge","thirdThresholdAge","status","lowerBound","upperBound","ageRangeDeclaration","parentalControls","iosVersion","parseInt","String","Version","IOS_MIN_VERSION_ELIGIBLE_CHECK","isIOSEligibleForAgeFeatures","isEligible","isEligibleForAgeFeatures","isAndroidEligibleForAgeFeatures","requestIOSSignificantChangeApproval","requestSignificantChangeApproval","requestIOSCommunicationPermission","contacts","actions","granted","requestCommunicationPermission","getIOSKnownCommunicationHandles","handles","knownHandles","getKnownCommunicationHandles"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","StoreAgeSignalsNativeModules","NativeModules","Proxy","get","Error","getAndroidPlayAgeRangeStatus","config","OS","Promise","resolve","installId","userStatus","error","IOS_MIN_VERSION_DECLARED_AGE_RANGE","requestIOSDeclaredAgeRange","firstThresholdAge","secondThresholdAge","thirdThresholdAge","status","lowerBound","upperBound","ageRangeDeclaration","parentalControls","iosVersion","parseFloat","String","Version","IOS_MIN_VERSION_ELIGIBLE_CHECK","isIOSEligibleForAgeFeatures","isEligible","isEligibleForAgeFeatures","isAndroidEligibleForAgeFeatures","IOS_MIN_VERSION_PERMISSIONKIT","requestIOSSignificantChangeApproval","requestSignificantChangeApproval","requestIOSCommunicationPermission","contacts","actions","granted","requestCommunicationPermission","getIOSKnownCommunicationHandles","handles","knownHandles","getKnownCommunicationHandles"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -97,7 +97,7 @@ export function getAndroidPlayAgeRangeStatus(config) {
97
97
  }
98
98
 
99
99
  // Minimum iOS version required for DeclaredAgeRange API
100
- const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26;
100
+ const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26.0;
101
101
 
102
102
  /**
103
103
  * Requests age range declaration from iOS Declared Age Range API.
@@ -120,7 +120,7 @@ export function requestIOSDeclaredAgeRange(firstThresholdAge, secondThresholdAge
120
120
  }
121
121
 
122
122
  // Early return for iOS versions below 26 to prevent native bridge errors
123
- const iosVersion = parseInt(String(Platform.Version), 10);
123
+ const iosVersion = parseFloat(String(Platform.Version));
124
124
  if (iosVersion < IOS_MIN_VERSION_DECLARED_AGE_RANGE) {
125
125
  return Promise.resolve({
126
126
  status: null,
@@ -135,7 +135,7 @@ export function requestIOSDeclaredAgeRange(firstThresholdAge, secondThresholdAge
135
135
  }
136
136
 
137
137
  // Minimum iOS version required for isEligibleForAgeFeatures API
138
- const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26;
138
+ const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26.2;
139
139
 
140
140
  /**
141
141
  * Checks if the current user is eligible for age verification features on iOS.
@@ -153,7 +153,7 @@ export function isIOSEligibleForAgeFeatures() {
153
153
  }
154
154
 
155
155
  // Early return for iOS versions below 26 to prevent native bridge errors
156
- const iosVersion = parseInt(String(Platform.Version), 10);
156
+ const iosVersion = parseFloat(String(Platform.Version));
157
157
  if (iosVersion < IOS_MIN_VERSION_ELIGIBLE_CHECK) {
158
158
  return Promise.resolve({
159
159
  isEligible: false,
@@ -180,7 +180,10 @@ export function isAndroidEligibleForAgeFeatures() {
180
180
  return StoreAgeSignalsNativeModules.isEligibleForAgeFeatures();
181
181
  }
182
182
 
183
- // ========== PERMISSIONKIT FUNCTIONS (iOS 26+) ==========
183
+ // ========== PERMISSIONKIT FUNCTIONS (iOS 26.2+) ==========
184
+
185
+ // Minimum iOS version required for PermissionKit APIs
186
+ const IOS_MIN_VERSION_PERMISSIONKIT = 26.2;
184
187
 
185
188
  /**
186
189
  * Requests parental approval for significant app changes (iOS PermissionKit).
@@ -192,7 +195,7 @@ export function isAndroidEligibleForAgeFeatures() {
192
195
  * The parent/guardian will receive a notification via Messages.
193
196
  *
194
197
  * @platform ios
195
- * @requires iOS 26.0+
198
+ * @requires iOS 26.2+
196
199
  * @returns Promise<SignificantChangeResult> - Contains status ('pending', 'approved', 'denied') and error
197
200
  *
198
201
  * @example
@@ -206,6 +209,7 @@ export function isAndroidEligibleForAgeFeatures() {
206
209
  * }
207
210
  * ```
208
211
  */
212
+
209
213
  export function requestIOSSignificantChangeApproval() {
210
214
  if (Platform.OS !== 'ios') {
211
215
  return Promise.resolve({
@@ -213,6 +217,13 @@ export function requestIOSSignificantChangeApproval() {
213
217
  error: 'This method is only available on iOS'
214
218
  });
215
219
  }
220
+ const iosVersion = parseFloat(String(Platform.Version));
221
+ if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
222
+ return Promise.resolve({
223
+ status: null,
224
+ error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
225
+ });
226
+ }
216
227
  return StoreAgeSignalsNativeModules.requestSignificantChangeApproval();
217
228
  }
218
229
 
@@ -249,6 +260,13 @@ export function requestIOSCommunicationPermission(contacts, actions) {
249
260
  error: 'This method is only available on iOS'
250
261
  });
251
262
  }
263
+ const iosVersion = parseFloat(String(Platform.Version));
264
+ if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
265
+ return Promise.resolve({
266
+ granted: false,
267
+ error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
268
+ });
269
+ }
252
270
  return StoreAgeSignalsNativeModules.requestCommunicationPermission(contacts, actions || ['message']);
253
271
  }
254
272
 
@@ -287,6 +305,13 @@ export function getIOSKnownCommunicationHandles(handles) {
287
305
  error: 'This method is only available on iOS'
288
306
  });
289
307
  }
308
+ const iosVersion = parseFloat(String(Platform.Version));
309
+ if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
310
+ return Promise.resolve({
311
+ knownHandles: [],
312
+ error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`
313
+ });
314
+ }
290
315
  return StoreAgeSignalsNativeModules.getKnownCommunicationHandles(handles);
291
316
  }
292
317
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","StoreAgeSignalsNativeModules","Proxy","get","Error","getAndroidPlayAgeRangeStatus","config","OS","Promise","resolve","installId","userStatus","error","IOS_MIN_VERSION_DECLARED_AGE_RANGE","requestIOSDeclaredAgeRange","firstThresholdAge","secondThresholdAge","thirdThresholdAge","status","lowerBound","upperBound","ageRangeDeclaration","parentalControls","iosVersion","parseInt","String","Version","IOS_MIN_VERSION_ELIGIBLE_CHECK","isIOSEligibleForAgeFeatures","isEligible","isEligibleForAgeFeatures","isAndroidEligibleForAgeFeatures","requestIOSSignificantChangeApproval","requestSignificantChangeApproval","requestIOSCommunicationPermission","contacts","actions","granted","requestCommunicationPermission","getIOSKnownCommunicationHandles","handles","knownHandles","getKnownCommunicationHandles"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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KAAK,SAAS,EAAE;IAC7B,OAAOC,OAAO,CAACC,OAAO,CAAC;MACrBoB,UAAU,EAAE,KAAK;MACjBjB,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EACA,OAAOX,4BAA4B,CAAC6B,wBAAwB,CAAC,CAAC;AAChE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,mCAAmCA,CAAA,EAAqC;EACtF,IAAIpC,QAAQ,CAACW,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,OAAO,CAAC;MACrBS,MAAM,EAAE,IAAI;MACZN,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EACA,OAAOX,4BAA4B,CAACgC,gCAAgC,CAAC,CAAC;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iCAAiCA,CAC/CC,QAAgC,EAChCC,OAA+B,EACS;EACxC,IAAIxC,QAAQ,CAACW,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,OAAO,CAAC;MACrB4B,OAAO,EAAE,KAAK;MACdzB,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EACA,OAAOX,4BAA4B,CAACqC,8BAA8B,CAChEH,QAAQ,EACRC,OAAO,IAAI,CAAC,SAAS,CACvB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,+BAA+BA,CAC7CC,OAA+B,EACF;EAC7B,IAAI5C,QAAQ,CAACW,EAAE,KAAK,KAAK,EAAE;IACzB,OAAOC,OAAO,CAACC,OAAO,CAAC;MACrBgC,YAAY,EAAE,EAAE;MAChB7B,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EACA,OAAOX,4BAA4B,CAACyC,4BAA4B,CAACF,OAAO,CAAC;AAC3E","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","StoreAgeSignalsNativeModules","Proxy","get","Error","getAndroidPlayAgeRangeStatus","config","OS","Promise","resolve","installId","userStatus","error","IOS_MIN_VERSION_DECLARED_AGE_RANGE","requestIOSDeclaredAgeRange","firstThresholdAge","secondThresholdAge","thirdThresholdAge","status","lowerBound","upperBound","ageRangeDeclaration","parentalControls","iosVersion","parseFloat","String","Version","IOS_MIN_VERSION_ELIGIBLE_CHECK","isIOSEligibleForAgeFeatures","isEligible","isEligibleForAgeFeatures","isAndroidEligibleForAgeFeatures","IOS_MIN_VERSION_PERMISSIONKIT","requestIOSSignificantChangeApproval","requestSignificantChangeApproval","requestIOSCommunicationPermission","contacts","actions","granted","requestCommunicationPermission","getIOSKnownCommunicationHandles","handles","knownHandles","getKnownCommunicationHandles"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
@@ -201,7 +201,7 @@ export declare function isAndroidEligibleForAgeFeatures(): Promise<DeclaredAgeEl
201
201
  * The parent/guardian will receive a notification via Messages.
202
202
  *
203
203
  * @platform ios
204
- * @requires iOS 26.0+
204
+ * @requires iOS 26.2+
205
205
  * @returns Promise<SignificantChangeResult> - Contains status ('pending', 'approved', 'denied') and error
206
206
  *
207
207
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milkinteractive/react-native-age-range",
3
- "version": "1.0.6",
3
+ "version": "1.1.0",
4
4
  "description": "A React Native Native Module (Legacy Architecture) that provides access to store-level age signals, including Android Play Age Range and iOS Declared Age, to assist with state-level age verification compliance (e.g., Texas).",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
package/src/index.tsx CHANGED
@@ -235,7 +235,7 @@ export function getAndroidPlayAgeRangeStatus(
235
235
  }
236
236
 
237
237
  // Minimum iOS version required for DeclaredAgeRange API
238
- const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26;
238
+ const IOS_MIN_VERSION_DECLARED_AGE_RANGE = 26.0;
239
239
 
240
240
  /**
241
241
  * Requests age range declaration from iOS Declared Age Range API.
@@ -262,7 +262,7 @@ export function requestIOSDeclaredAgeRange(
262
262
  }
263
263
 
264
264
  // Early return for iOS versions below 26 to prevent native bridge errors
265
- const iosVersion = parseInt(String(Platform.Version), 10);
265
+ const iosVersion = parseFloat(String(Platform.Version));
266
266
  if (iosVersion < IOS_MIN_VERSION_DECLARED_AGE_RANGE) {
267
267
  return Promise.resolve({
268
268
  status: null,
@@ -282,7 +282,7 @@ export function requestIOSDeclaredAgeRange(
282
282
  }
283
283
 
284
284
  // Minimum iOS version required for isEligibleForAgeFeatures API
285
- const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26;
285
+ const IOS_MIN_VERSION_ELIGIBLE_CHECK = 26.2;
286
286
 
287
287
  /**
288
288
  * Checks if the current user is eligible for age verification features on iOS.
@@ -300,7 +300,7 @@ export function isIOSEligibleForAgeFeatures(): Promise<DeclaredAgeEligibilityRes
300
300
  }
301
301
 
302
302
  // Early return for iOS versions below 26 to prevent native bridge errors
303
- const iosVersion = parseInt(String(Platform.Version), 10);
303
+ const iosVersion = parseFloat(String(Platform.Version));
304
304
  if (iosVersion < IOS_MIN_VERSION_ELIGIBLE_CHECK) {
305
305
  return Promise.resolve({
306
306
  isEligible: false,
@@ -328,7 +328,10 @@ export function isAndroidEligibleForAgeFeatures(): Promise<DeclaredAgeEligibilit
328
328
  return StoreAgeSignalsNativeModules.isEligibleForAgeFeatures();
329
329
  }
330
330
 
331
- // ========== PERMISSIONKIT FUNCTIONS (iOS 26+) ==========
331
+ // ========== PERMISSIONKIT FUNCTIONS (iOS 26.2+) ==========
332
+
333
+ // Minimum iOS version required for PermissionKit APIs
334
+ const IOS_MIN_VERSION_PERMISSIONKIT = 26.2;
332
335
 
333
336
  /**
334
337
  * Requests parental approval for significant app changes (iOS PermissionKit).
@@ -340,7 +343,7 @@ export function isAndroidEligibleForAgeFeatures(): Promise<DeclaredAgeEligibilit
340
343
  * The parent/guardian will receive a notification via Messages.
341
344
  *
342
345
  * @platform ios
343
- * @requires iOS 26.0+
346
+ * @requires iOS 26.2+
344
347
  * @returns Promise<SignificantChangeResult> - Contains status ('pending', 'approved', 'denied') and error
345
348
  *
346
349
  * @example
@@ -354,6 +357,7 @@ export function isAndroidEligibleForAgeFeatures(): Promise<DeclaredAgeEligibilit
354
357
  * }
355
358
  * ```
356
359
  */
360
+
357
361
  export function requestIOSSignificantChangeApproval(): Promise<SignificantChangeResult> {
358
362
  if (Platform.OS !== 'ios') {
359
363
  return Promise.resolve({
@@ -361,6 +365,15 @@ export function requestIOSSignificantChangeApproval(): Promise<SignificantChange
361
365
  error: 'This method is only available on iOS',
362
366
  });
363
367
  }
368
+
369
+ const iosVersion = parseFloat(String(Platform.Version));
370
+ if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
371
+ return Promise.resolve({
372
+ status: null,
373
+ error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`,
374
+ });
375
+ }
376
+
364
377
  return StoreAgeSignalsNativeModules.requestSignificantChangeApproval();
365
378
  }
366
379
 
@@ -400,6 +413,15 @@ export function requestIOSCommunicationPermission(
400
413
  error: 'This method is only available on iOS',
401
414
  });
402
415
  }
416
+
417
+ const iosVersion = parseFloat(String(Platform.Version));
418
+ if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
419
+ return Promise.resolve({
420
+ granted: false,
421
+ error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`,
422
+ });
423
+ }
424
+
403
425
  return StoreAgeSignalsNativeModules.requestCommunicationPermission(
404
426
  contacts,
405
427
  actions || ['message']
@@ -443,5 +465,14 @@ export function getIOSKnownCommunicationHandles(
443
465
  error: 'This method is only available on iOS',
444
466
  });
445
467
  }
468
+
469
+ const iosVersion = parseFloat(String(Platform.Version));
470
+ if (iosVersion < IOS_MIN_VERSION_PERMISSIONKIT) {
471
+ return Promise.resolve({
472
+ knownHandles: [],
473
+ error: `Requires iOS ${IOS_MIN_VERSION_PERMISSIONKIT}+. Current version: iOS ${iosVersion}`,
474
+ });
475
+ }
476
+
446
477
  return StoreAgeSignalsNativeModules.getKnownCommunicationHandles(handles);
447
478
  }