Сбой isEligibleForAgeFeatures с EXC_BAD_ACCESS KERN_INVALID_ADDRESSIOS

Программируем под IOS
Ответить
Anonymous
 Сбой isEligibleForAgeFeatures с EXC_BAD_ACCESS KERN_INVALID_ADDRESS

Сообщение Anonymous »

Я реализовал новые требования к возрастному диапазону в своем приложении, однако начинаю получать отчеты о сбоях с помощью команды try await AgeRangeService.shared.isEligibleForAgeFeatures. У меня есть трассировка стека

Код: Выделить всё

0  MyApplication                  0x34d760 UIViewController.requestAgeRange(gates:) + 35 (UIViewControllerExtension.swift:35)
1  libswift_Concurrency.dylib     0x62d58  + 288
2  libswift_Concurrency.dylib     0x641cc  + 156
3  libdispatch.dylib              0x38a48  + 592
4  libdispatch.dylib              0x10ec8  + 180
5  libdispatch.dylib              0x10e04 _dispatch_main_queue_callback_4CF + 44
6  CoreFoundation                 0x6a2c8  + 16
7  CoreFoundation                 0x1db3c  + 1944
8  CoreFoundation                 0x1ca6c  + 532
9  GraphicsServices               0x1498 GSEventRunModal + 120
10 UIKitCore                      0x9e7cc  + 792
11 UIKitCore                      0x46f40 UIApplicationMain + 336
12 BiggerCity                     0x3eec28 main + 30 (AppDelegate.swift:30)
13 ???                            0x1916f2e28 (Missing)
Я знаю, что isEligibleForAgeFeatures довольно новый, поскольку он был представлен в iOS 26.2, поэтому в коде все еще могут быть ошибки, но мне интересно, нашел ли кто-нибудь исправление, позволяющее предотвратить сбой? Я создал расширение UIViewController

Код: Выделить всё

extension UIViewController {

enum AgeGateResult {
case allowed            // 18+ confirmed OR out-of-scope
case blockedUnder18     // Confirmed minor
case needsConfirmation  // Eligible but declined / not yet shared
case displayAgeDialog
}

@MainActor
@available(iOS 26.2, *)
func requestAgeRange(
gates: [Int]
) async -> AgeGateResult {

// Default to allowed (fail-open) unless we determine otherwise
var validAge = true

do {
// Safely check eligibility — if the call throws, treat as eligible (fail-open)
var isEligible: Bool = false
do {
isEligible = try await AgeRangeService.shared.isEligibleForAgeFeatures
} catch {
validAge = true
return .allowed
}
...
Я выполняю проверку при запуске с помощью моего исходного UIViewController в блоке Task

Код: Выделить всё

func checkAge() {
Task {
if #available(iOS 26.2, *) {
let ageCheckResult = await requestAgeRange(gates: [18])
...
Есть ли у кого-нибудь идеи, какое возможное решение может быть, если таковое имеется? Или это что-то, что Apple, возможно, придется исправить с помощью класса Age Range?

Подробнее здесь: https://stackoverflow.com/questions/798 ... id-address
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»