本文介绍了iOS集成中可能出现的问题和解决方法。

调起无线认证SDK进入认证页面时,提示网络异常,请检查网络、UNKNOWN_ERROR或者出现空白页

查看Xcode console。
  • SG ERROR代码是1208、1215、1407、1411
    • 如果您已经接入过实人认证无线SDK,且iOS SDK版本号<=2.1,那么请到控制台下载新版本的无线SDK(iOS SDK版本号>=2.2),并使用新下载SDK包中的所有的文件替换原来开发包里的对应文件。
      说明 您可以在RPSDK.framework文件夹下的info.plist文件中查看CFRPSDKVersion。
    • 如果确认不存在上述情况,则说明当前开发包与在管理控制台下载SDK时上传包的BundleID不一致。请在管理控制台重新上传当前开发包,并使用新下载SDK中的yw_1222_*.jpg签名图片文件替换开发包中原有的文件。
  • SG ERROR代码是1412、1225

    说明图片不存在。请确保SDK中的yw_1222_*.jpg签名图片正确地引入到了Copy Bundle Resource下。

项目中之前引入的组件与无线认证SDK中的组件(例如SecurityGuardSDK、AliyunOSSiOS等)有重复

  • 若SecurityGuardSDK组件有重复,删除低版本,但要保留两个版本的yw_1222_*.jpg签名图片文件。
  • 若AliyunOSSiOS等其他组件有重复,删除低版本即可。

项目中之前引入的SecurityEnvSDK组件与无线认证SDK中的SGMain组件报duplicate symbol冲突

SecurityEnvSDK组件是SGMain组件的历史版本,删除SecurityEnvSDK,但要保留两个组件的yw_1222_*.jpg签名图片文件。

出现编译失败报错

报错信息:“Undefined symbols for architecture arm64: "_OBJC_CLASS_$_xxx". ld: symbol(s) not found for architecture arm64”

处理建议:请检查从阿里云控制台下载的所有.framework 文件都已正确导入项目。导入成功后可以在Build Phases > Link Binary With Libraries查看所有的.framework文件。如果没有,则说明导入过程有问题;请先参考iOS开发相关文档,学习如何导入第三方依赖到iOS工程。

出现运行崩溃报错

报错信息:“Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[YourApp.AppDelegate window]: unrecognized selector sent to instance 0x*********'”

处理建议:由于第三方依赖调用了AppDelegate.window导致。
  • Objective-C:在AppDelegate.h中添加@property (strong, nonatomic) UIWindow *window;属性。
  • Swift:在AppDelgate.swift 添加internal var window: UIWindow?属性。

与mPaas产品冲突导致使用异常

如果您的产品同时接入了蚂蚁的mPaas且发生了异常,请参见以下常见问题总结。

  • 异常信息:实人认证唤起之后白屏。

    处理建议:可能是mPaas的加密图片yw_1222_xxx.jpg配置异常导致,可以先咨询mPaas的客服是否可以提供一个支持网络功能的加密图片,如果无法解决则联系实人认证的客服进行解决。

  • 异常信息:依赖库(SecurityGuardSDK.framework、SGMain.framework、SGSecurityBody.framework)重复引入,导致编译异常或者失败。

    处理建议:建议删除旧版本,保留最新版本。如果保留最新版本后仍有问题,请联系实人认证的客服解决。

提示版本过低

必须设置CFBundleName,即应用名称。

第一次认证会出现几秒钟的延迟

Xcode10在调试模式下打开视频流时,会有10 s左右延迟。断开调试模式后若无延时,则可以忽略此问题。

SG ERROR = 105、103

在Build Settings的Other Linker Flags中添加-ObjC

客户端回调-2状态

  • 确认当前SDK版本为控制台上下载的最新版。
  • 确认当前项目Bundle ID与生成SDK时上传的ipa一致,包名如果有更新,需要替换yw_1222_0769.jpg文件。
  • 确认传入SDK的viewController不为空且在应用顶层。
  • 与您的服务端团队确认当前生成token时传入的场景标识正确,且客户端调用的方法与该场景的认证方案匹配。
  • 确认当前网络的可用性,关闭代理。