Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ISSUE-029

Declared Age Range导致游戏卡住

常见表现

用户协议界面卡住,登录界面卡住。

活动监视器中出现 FamilyOutOfProcessUIExtension 进程。

相关源码

import DeclaredAgeRange

func isEligibleForAgeFeatures() async -> Bool {
	if #available(iOS 26.2, *) {
	    return (try? await AgeRangeService.shared.isEligibleForAgeFeatures) ?? false
	} else {
	    return false
	}
}

func requestAgeRange() async {
	if #available(iOS 26.2, *) {
		guard let response = try? await AgeRangeService.shared.requestAgeRange(
	        ageGates: 13, 15, 18, in: viewController) else {
	        return
	    }
	    // ...
	} else {
		// ...
	}
}

原因分析

应用在登录流程中尝试通过 Declared Age Range 查询用户的年龄范围。

但由于签名限制,PlayCover中的应用无法拉起年龄范围询问窗口,Declared Age Range API也不会有任何响应,甚至不会返回错误信息。

解决方法

方法一:打开活动监视器,尝试杀掉 FamilyOutOfProcessUIExtension 进程。

方法二:通过二进制补丁跳到 if #available(iOS 26.2, *) 的另一个分支。

方法三:编译一个空实现的DeclaredAgeRange.framework,通过install_name_tool替换动态库路径。