iOS客户端FAQ

更新时间:
复制 MD 格式

本文为您介绍号码认证iOS客户端常见问题。

问题概览

服务咨询类

使用咨询类

异常/错误咨询类

号码认证服务密钥在哪查看?

登录号码认证控制台,在方案管理页面,创建认证方案后会自动生成密钥。

提示isv.INVALID_APP,什么意思?

请确认创建方案号的阿里云账号和服务端调用的阿里云账号是否一致。

服务端App Code怎么获取?

登录号码认证控制台,在方案管理页面,创建认证方案后会生成方案号。

H5获取到的Access_Token给一键登录取号用可以吗?

不可以用,客户端getlogintoken接口获取的Token,作为getmobile接口的入参,Token是不通用的。

unity项目支持吗?

目前只有uniapp阿里云有研发插件供用户使用,如Flutter、Swift、RN等暂未提供插件,需要用户侧自行研发插件接入。

一个App可以对应多个认证方案吗?

可以的,两个方案号的Bundleid可以相同。

加速接口和获取接口什么关系?

可以不调用预取号接口(加速接口)。 唤起授权页的前提条件是预取号必须要成功,如果没有提前调用预取号接口,直接调用getlogintoken接口时,SDK会自动调用预取号接口。所以唤起授权页会有一个明显的等待过程。如果提前调用了预取号接口,就可以快速唤起授权页。

号码认证的方案名称和App名称能修改吗?

号码认证方案号创建完成后,不支持修改。 如果您有信息变更,或新增加App,请创建新的方案号。

更多详情,请参见号码认证服务

虚拟号可以使用吗?

目前是不支持使用虚拟号。

iOS SDK 静态库或动态库是否涉及开源 License 传染性(如 LGPL)?

一键登录 iOS SDK 的静态库和动态库与开源 License 传染性(如 LGPL)无关,您可直接按照官网开发文档进行集成对接,无需担心合规风险。

登录的按钮背景色怎么配置?

授权页登录按钮不支持修改背景色,只支持背景图片。

在授权页上如何自定义UI?

可以添加自定义控件,目前授权页除了“一键登录区域、协议区域、掩码区域”之外,其他地方均可添加自定义控件,添加自定义UI请在customViewBlock回调中进行。定义视图的创建初始化和添加到父视图,都需要在主线程。

号码认证服务二次授权弹窗能自定义布局吗?

二次授权弹框仅支持授权页全屏模式。若SDK提供了对应UI修改接口,则表示相应UI支持修改。若未提供接口,即表示UI不支持修改。

可以通过自定义授权按钮获取Token吗?

不可以,必须通过内置的登录按钮进行。授权页的预取掩码、登录按钮、运营商协议部分,不支持自定义控件的,其他区域支持自定义控件。

怎么判断是显示哪个运营商的隐私协议链接?

运营商协议是授权页自动显示的。您不需要处理,具体是哪个运营商就会自动显示对应运营商协议。

iOS SDK中的ATAuthSDK.bundle图片资源未能加载到页面上?

使用默认图片必须把SDK带的bundle导进工程。

NSString *path = [[NSBundle mainBundle] pathForResource:@"ATAuthSDK" ofType:@"bundle"];

NSBundle *bundle = [[NSBundle alloc] initWithPath:path];

授权页的隐私复选框位置怎么调整? 复选框设置宽高厚和隐私纵向不居中?

协议仅支持横向居中,不支持纵向居中。 文案是顶部对齐,设置checkbox把圆圈切到顶部。

在点击一键登录之前获取到手机号,有没有办法实现?

不可以,点击一键登录这个步骤不可以跳过。

授权页面可以二次开发吗?

可以,设置自定义控件实现二次开发。

为什么程序第一次启动的时候失败率较高?

第一次启动时可能存在网络授权相关问题,如果启动直接调用唤起授权页接口,可能存在超时现象。若需要快速拉起授权页,建议先调用加速接口,再快速唤起授权页。

获取Token超时,为什么错误码600015?

请您检查手机的网络环境是否正常,600015表示网络异常超时导致,查看4 G移动数据(关闭Wi-Fi)测试是否正常,或开启飞行模式进行网络重启。

号码认证服务登录失败,AccessCode参数不合法?

检查Token是否重复使用或已过期。Token有效期按运营商区分:中国电信10分钟、中国联通30分钟、中国移动2分钟,且均仅可使用一次。同时确认客户端返回的Token完整传给服务端,中途未做改动。iOS调试时不要从Xcode控制台复制Token,控制台打印可能截断,需在断点处复制完整Token。

iOS客户端请求号码认证服务,报错返回 600017?

600017一般是包名/签名或密钥设置错误导致,号码认证控制台方案管理页面的密钥需要同步到代码

一键登录取号接口提示code:isv.ACCESS_CODE_ILLEGAL?

Token解析失败,建议将前端获取的Token,完整的返给后端校验。

登录密钥失败,怎么办?

建议检查BundleId和密钥是否对应正确。

SDK 升级后部分接口偶发报错 600004,怎么办?

问题原因:从 iOS 16.4 开始,iOS 系统开始废弃 CTCarrier 功能,无法直接获取当前 SIM 卡的运营商信息,并不再提供替代方案。号码认证最新版本 SDK 通过 IPv6 来确定当前运营商信息,IPv4 时则无法判断。由于存在网关随机分配 IP 地址、IPv6 向 IPv4 转换等兼容性场景的可能性,所以如果网关刚好分配了 IPv4 地址,部分接口就会调用失败返回错误码 600004。600004 不需要上传证书,请排除证书相关因素后按以下方式处理。

根据运营商目前线上数据来看,IPv6 地址占比在 80% 左右,上述问题在将 SDK 升级至最新版本后仍会低概率偶现。

解决办法:600004 问题已在号码认证 SDK 版本 2.12.15 开始优化解决,请先确保您当前 SDK 版本已升级至 2.12.15 及以上,如更新之后还存在偶发性报错 600004,请根据场景选择推荐的办法:

  • 接口调试测试等场景:您可以切换飞行模式或重启手机重置网络后再进行调试。

  • 用户场景、业务场景:为了提升用户体验,建议调用getConnection接口检查当前网络类型。若返回结果为 Wi-Fi,可提示用户关闭 Wi-Fi 或切换至短信验证码等其他登录方式;若无法识别网络类型,或因弱网导致取号失败,也应引导用户切换至其他验证方式。

  • 调试排查场景:若需获取更详细的调试信息以进一步定位问题,可将 SDK 升级至 2.14.11 及以上版本,并配置privacyVCIsCustomized为自定义协议模式,通过getCurrentCarrierName判断当前运营商,手动跳转至对应运营商的协议页面进行排查。

iOS 端出现 NSURLErrorDomain code 600012 / -1200 的 TLS 错误,导致一键登录失败,如何处理?

问题原因:该问题通常由旧版本ATAuthSDK未兼容 iOS 高版本(如 iOS 26)或特定运营商网关引起。

解决办法:将ATAuthSDK升级至最新版本(建议 2.14.11 及以上),集成时请保持与升级前一致的动态库形式(ATAuthSDK_D.framework),避免因 SDK 形式变化引入新的兼容性问题。同时建议在业务代码中优化错误处理逻辑:取号失败时自动切换至短信验证码等其他登录方式,避免将 SDK 底层报错信息直接展示给用户。