本文介绍了iOS集成中可能出现的问题和解决方法。
调起无线认证SDK进入认证页面时,出现网络异常
例如提示请检查网络、UNKNOWN_ERROR或者出现空白页。
- 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签名图片文件替换开发包中原有的文件。
- 如果您已经接入过实人认证无线SDK,且iOS SDK版本号<=2.1,那么请到控制台下载新版本的无线SDK(iOS SDK版本号>=2.2),并使用新下载SDK包中的所有的文件替换原来开发包里的对应文件。
- 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 文件都已正确导入项目。导入成功后可以在
查看所有的.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”偶现崩溃,如何处理?
控制台日志SG Error报203错误,如何处理?
处理建议:
- 确认下目录路径中是否包含中文,如果包含请改成英文。
- xcode工程buildSetting配置页的Product Name是否为中文,如果是需改为英文。
当显示ErrorCode=-2222时,如何处理?
异常信息:
- 如果是手动导入的依赖库,导入时确认是否选择copy If need。
- 执行如下代码,确定路径是否真实存在。
NSString *rpPath = [NSString stringWithFormat:@"%@/RPSDK.bundle/icon/web_backBtn@2x.png", [[NSBundle mainBundle] bundlePath]]; BOOL rpFlag = [[NSFileManager defaultManager] fileExistsAtPath:rpPath];