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替换动态库路径。