ios问题


Q 1.移动手机号报获取token失败:desc=错误的请求签名, resultCode=103101:

R: 移动运营商旧版本bug

Tips:SDK1.7.3以下版本会出现,可更新SDK或按照下面方法进行解决

S: 工程中的Info.plist中添加bundleId对应的key-value。搜索Xcode项目工程中的.strings国际化文件,如果app存在本地国际化文件,请在每个本地国际化文件中添加CFBundleIdentifier,各个语言版本文件中都需要添加


Q 2.预取号时机:

R: 预取号比较耗时,若直接预取号之后再进入授权页面,会影响用户体验

S: 建议用户提前预取号,可以放到 didFinishLaunchingWithOptions 方法中,因获取运营商信息的时候需要用到window,建议要放到设置了 window 的 rootViewController 之后


Q 3.预取号成功后,调用取号方法,取号页面无法弹起:

R:a.之前弹起过一次取号页面,只是在取号成功后没有关闭该页面,然后又调用取号方法;

b.当前流量为移动,且网络状态极差

S: (1)在授权页面,取号成功后,必须调用 SDK 的 dismissAuthViewController 方法关掉授权页面;

(2)由于移动进入授权页面时要检测网络状态,若网络极差则无法进入授权页面


Q 4.SDK报8001错误:

R: ATS白名单未设置

A: 参考官网部署文档设置ATS白名单


Q 5.支持横屏的app在双卡手机上无法获取运营商信息:

R: 获取运营商信息时需要用到状态栏信息,而只支持横屏的app中无法获取状态栏信息

A: 工程支持竖屏,在对应的 ViewController 中设置为只支持横屏


Q 6.CocoaPods 无法获取 OneLogin:

R: 若在集成极验 SDK 之前就安装了 CocoaPods,安装完成之后,会在本地有一份缓存,缓存中并没有 OneLogin

A: a.删掉缓存的索引,使用 pod setup 重新建立索引即可;

b.使用 pod install –repo-update 安装


Q 7.自定义协议点击无响应:

R: a.初始化协议时,对应的 block 没有传 nil,但是在 block 中又没做任何操作;

b.多个协议使用了相同的URL

A: (1)删掉缓存的索引,使用 pod setup 重新建立索引即可;

(2)使用 pod install –repo-update 安装


Q 8.在授权页面,当前流量卡为电信时,点击一键登录报 40399:

R: 电信 SDK 对 topClass 的校验未通过

Tips:SDK1.8.0以下版本会出现,可更新SDK或按照下面方法进行解决

A: app内部存在多个 window 的情况时,授权页面要放到keyWindow


Q 9.联通预取号报 -40201 错误:

R: 用户修改了手机时间

A: 手机调为正常时间即可;若当前时间恢复正常后依然报错,检查下当前网络环境


Q 10.iOS 13 双卡预取号失败:

R: 1.7.3 之前的版本不支持 iOS 13 双卡

A: 升级到 1.8.0 版本


Q 11.- (BOOL)application:(UIApplication)application didFinishLaunchingWithOptions:(NSDictionary)launchOptions 方法中(程序启动时)预取号失败:

R: 预取号方法会先调用系统API检测当前手机流量对应的运营商,而在程序刚刚启动时,该检测方法往往会检测不到正确的运营商

A: 把预取号的方法放到 - (BOOL)application:(UIApplication)application didFinishLaunchingWithOptions:(NSDictionary)launchOptions 方法的最后面执行,或者稍微延迟一下去执行预取号方法