You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS Swift集成reCAPTCHA Enterprise初始化时出现未识别选择器错误

reCAPTCHA Enterprise iOS SDK初始化崩溃:unrecognized selector sent to instance

问题场景

使用Swift开发iOS应用,通过Swift Package Manager导入reCAPTCHA-Enterprise-Mobile-SDK,执行以下初始化代码时发生崩溃:

let (recaptchaClient, error) = await Recaptcha.getClient(siteKey: key)
if let recaptchaClient = recaptchaClient {
  self.recaptchaClient = recaptchaClient
}
if let error = error {
  print("RecaptchaClient creation error: \(error.errorMessage ?? \"NIL\").");
}

崩溃日志:

2023-04-14 12:55:20.351476+0530 Runner[2442:667659] -[RCAx_GPBTimestamp initWithTimeIntervalSince1970:]: unrecognized selector sent to instance 0x28191c000
2023-04-14 12:55:20.352389+0530 Runner[2442:667659] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RCAx_GPBTimestamp initWithTimeIntervalSince1970:]: unrecognized selector sent to instance 0x28191c000'
*** First throw call stack:
(0x1cbdbba84 0x1ca20d958 0x1cbf1c110 0x1cbdd0c28 0x1cbe3470c 0x104bc3d74 0x104bbd91c 0x104bbda04 0x104b973a8 0x104a3c08c 0x104a3d8c4 0x104a44a20 0x104a45698 0x104a51158 0x218562b50 0x21856267c)
libc++abi: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RCAx_GPBTimestamp initWithTimeIntervalSince1970:]: unrecognized selector sent to instance 0x28191c000'
terminating with uncaught exception of type NSException
(Recorded stack frame) 

错误含义

该错误表示SDK内部的RCAx_GPBTimestamp类无法找到initWithTimeIntervalSince1970:方法,本质是依赖库版本不兼容或重复引入导致的符号冲突/缺失。RCAx_GPBTimestamp是reCAPTCHA SDK依赖的Protocol Buffers(Protobuf)相关类,出现这类问题通常是项目中同时存在多个版本的Protobuf库,或SDK导入时未正确拉取完整依赖链。

解决方法

  • 清理并重新导入SDK:
    1. 从Swift Package Manager中移除reCAPTCHA-Enterprise-Mobile-SDK
    2. 清理项目缓存:执行Product > Clean Build Folder,删除DerivedData目录
    3. 重新添加SDK包地址,勾选"Up to Next Major Version"版本规则,让SPM自动拉取兼容的依赖版本
  • 检查重复依赖:
    查看项目是否手动引入了Protobuf相关库(如GoogleUtilities或其他依赖Protobuf的第三方库),若有则统一版本号,避免版本冲突
  • 验证版本兼容性:
    确保reCAPTCHA SDK版本与iOS系统版本兼容(最低支持iOS 13.0),若项目部署目标低于13.0,需调整项目设置或降级SDK到兼容版本
  • 强制更新依赖:
    在SPM中选择File > Packages > Update to Latest Package Versions,强制更新所有依赖到最新兼容版本

内容的提问来源于stack exchange,提问作者Samuel I

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:17:45