本文介绍了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)重复引入,导致编译异常或者失败。

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

与友盟UMCSecurityPlugins下面的SecurityEnvSDK产生冲突,如何处理?

处理建议:删除SecurityEnvSDK.framework,同时全局搜索-framework "SecurityEnvSDK",删除即可。

“AVCaptureSession addInput”偶现崩溃,如何处理?

处理建议:如果您现在使用的实人认证版本小于3.4.0版本,且发生了如下崩溃,则可以升级到新版本来解决。版本

控制台日志SG Error报203错误,如何处理?

处理建议:

  1. 确认下目录路径中是否包含中文,如果包含请改成英文。
  2. xcode工程buildSetting配置页的Product Name是否为中文,如果是需改为英文。

当显示ErrorCode=-2222时,如何处理?

异常信息:

111
处理建议:请确认RPSDK.bundle正确导入到Copy Bundle Resources下,步骤如下:
  1. 如果是手动导入的依赖库,导入时确认是否选择copy If need
  2. 执行如下代码,确定路径是否真实存在。
    NSString *rpPath = [NSString stringWithFormat:@"%@/RPSDK.bundle/icon/web_backBtn@2x.png", [[NSBundle mainBundle] bundlePath]];
    BOOL rpFlag = [[NSFileManager defaultManager] fileExistsAtPath:rpPath];