服务端升级指南
v2版本服务端接口对接2.3.0以后版本SDK(包含2.3.0)。v2版本接口与v1版本接口不兼容,2.3.0版本以前版本的SDK需对接v1版服务端接口。
v1->v2
- v2版接口地址变更,由V1的三网三个地址变更为一个地址。
- v2版接口参数传入参数变更,v1的传入参数都是由2.3.0以前版本SDK返回。v2版传入对应的2.3.0版本SDK只返回token一个参数, 其他参数由APP服务端生成,sign签名参数需要APP服务端实现签名算法进行签名。
- v2版接口返回的手机号码加解密方式变更。变更为默认AES算法,支持RSA算法,由传入的encryptType字段的值来控制。 V1接口默认是DES算法。
注意事项:
如您之前已经接入了2.3.0以前版本的SDK并已上线使用,此时要接入2.3.0版本SDK,那么需要升级APP服务端代码,对使用新的2.3.0版SDK的APP开发新的APP服务端接口,用于对接v2接口,区别于之前的老版接口,这样逻辑分离便于对接和维护。
Android版本升级指南
注意: 三网运营商内部执行不同,升级完成必须分别使用三网运营商的卡进行测试,防止功能异常!
v2.3.4.3 ->v2.3.5.3
- 替换aar包(如果是采用maven集成,修改依赖的SDK版本号)
v2.3.3.9 ->v2.3.4.3
- 删除libCtaApiLib.so、libShanYCore.so(已经打到aar包中)
- 替换aar包(如果是采用maven集成,修改依赖的SDK版本号)
- 按照对接文档修改manifest中授权页LoginAuthActivity的包名类名(LoginAuthActivity改成com.cmic.gen.sdk.view.GenLoginAuthActivity);activity的主题、方向等其他配置不用修改
- 按照文档修改混淆规则
v2.3.3.8 ->v2.3.3.9
- 替换aar包和jniLibs文件夹的so库文件
- 按照对接文档修改manifest中授权页LoginAuthActivity的名字
v2.3.2.0 ->(v2.3.3.0~v2.3.3.8)
- 替换aar包和jniLibs文件夹的so库文件
- 对于全局禁用Http的项目,需要新增10010.com为Http白名单。即项目中需要添加两个:cmpassport.com和10010.com(如果使用android:usesCleartextTraffic="true"配置支持http的,可忽略此条)
v2.3.1.x ->v2.3.2.0
- 替换aar包和jniLibs文件夹的so库文件
- 修改混淆规则
v2.3.0.x ->v2.3.1.x
- 替换aar包和jniLibs文件夹的so库文件
- 替换manifest里面的activity配置
- 新增普通权限(CHANGE_WIFI_STATE)
v2.2.x ->v2.3.0.x
- 替换aar包和jniLibs文件夹的so库文件;
- 初始化init方法去除appkey参数
- 新增授权页的可配置项,授权页背景可设置动态和视频,自定义协议增加至三个,checkbox间距和大小可设置,书名号可去除,可配置授权页全屏显示。
- 点击一键登录成功返回的result字段,解析成json数据为{"token": "" } 置换手机号接口变动,具体需看服务端对接文档。
- 如使用AndResGuard资源压缩过滤请替换为:
R.anim.umcsdk_anim_loading R.drawable.authbackground_image R.drawable.login_bg_gray R.drawable.oauth_anim_loading_dialog R.drawable.oauth_loading_bg R.drawable.progress_bar_states R.drawable.selector_button_cucc R.drawable.sy_sdk_left R.drawable.sysdk_anim R.drawable.umcsdk_check_image R.drawable.umcsdk_checkbox_bg.xml R.drawable.umcsdk_login_btn_bg R.drawable.umcsdk_return_bg R.drawable.umcsdk_shap_bg R.drawable.umcsdk_uncheck_image R.drawable.umcsdk_load_dot_white R.drawable.umcsdk_mobile_logo R.layout.activity_ctcc_privacy_protocol R.layout.activity_oauth R.layout.cmcc_navigationbar_back_layout R.layout.oauth_loading_dialog R.layout.shanyan_navigationbar_layout R.layout.shanyan_privacy_layout R.layout.sysdk_activity_onekey_login R.id.loading_parent R.id.oauth_loading_dialog_img R.id.loading R.id.oauth_loading_dialog_txt R.id.sysdk_cucc_login_layout R.id.cuc_webview R.id.navigation_bar R.id.oauth_back R.id.oauth_title R.id.oauth_content R.id.navigation_bar_line R.id.app_name R.id.other_login R.id.login_before_text R.id.service_and_privacy R.id.authorize_app R.id.is_agree R.id.shanyan_navigationbar_include R.id.sy_cucc_boby R.id.oauth_logo R.id.oauth_mobile_et R.id.brand R.id.oauth_login R.id.protocol R.id.shanyan_onkeylogin_loading R.id.agreement_title R.id.ctcc_agreement_back R.id.oauth_help R.id.baseweb_webview R.id.sysdk_ctcc_login_layout R.id.sysdk_login_boby R.id.sysdk_authority_finish R.id.sysdk_log_image R.id.tv_per_code R.id.bt_one_key_login R.id.shanyan_privacy_include R.id.sysdk_identify_tv R.id.shanyan_privacy_rootlayout R.id.shanyan_privacy_checkbox_rootlayout R.id.shanyan_privacy_checkbox R.id.shanyan_privacy_text R.id.shanyan_navigationbar_root R.id.shanyan_navigationbar_back_root R.id.shanyan_navigationbar_back R.id.shanyan_navigationbar_title
v2.2.0.x ->v2.2.1.x
- 替换aar包和jniLibs文件夹的so库文件;
- 修改控件设置背景图片
- 优化偶现的崩溃问题
- 添加debug日志开关 OneKeyLoginManager.getInstance().setDebug(true)
- 协议栏添加居左显示
- 优化流程逻辑
- 如使用AndResGuard资源压缩过滤请替换为:
R.id.sysdk_ctcc_login_layout R.id.sysdk_login_head R.id.ctcc_return_button R.id.sysdk_title_return_button R.id.umcsdk_title_name_text R.id.sysdk_login_boby R.id.sysdk_authority_finish R.id.sysdk_log_image R.id.tv_per_code R.id.bt_one_key_login R.id.umcsdk_login_text R.id.loading R.id.sy_ctcc_agreement_ll R.id.ctcc_agree_checkbox R.id.sy_ctcc_cb R.id.authorize_agreement R.id.sysdk_identify_tv R.id.shanyan_onkeylogin_loading R.id.agreement_title R.id.ctcc_agreement_back R.id.oauth_title R.id.oauth_help R.id.baseweb_webview R.id.sysdk_cucc_login_layout R.id.cuc_webview R.id.navigation_bar R.id.sy_cucc_title_head R.id.cucc_return_button R.id.oauth_back R.id.oauth_title R.id.oauth_help R.id.navigation_bar_line R.id.sy_cucc_boby R.id.oauth_logo R.id.app_name R.id.oauth_mobile_et R.id.brand R.id.oauth_login R.id.other_login R.id.protocol R.id.cucc_agree_checkbox R.id.is_agree R.id.login_before_text R.id.service_and_privacy R.id.cucc_authorize_agreement R.id.authorize_app R.id.sysdk_cucc_slogan R.id.small_logo R.id.sysdk_cucc_slogan_tv R.id.shanyan_onkeylogin_loading R.id.loading_parent R.id.oauth_loading_dialog_img R.id.oauth_loading_dialog_txt R.id.ivProgress R.anim.umcsdk_anim_loading R.drawable.btn_bg_blue R.drawable.login_bg_gray R.drawable.oauth_anim_loading_dialog R.drawable.oauth_loading_bg R.drawable.progress_bar_states R.drawable.sy_check R.drawable.sy_sdk_left R.drawable.sy_uncheck R.drawable.sysdk_anim R.drawable.umcsdk_checkbox_bg R.drawable.umcsdk_return_bg R.drawable.umcsdk_shap_bg R.drawable.preoperaicon R.drawable.umcsdk_load_dot_white R.layout.activity_ctcc_privacy_protocol R.layout.activity_oauth R.layout.oauth_loading_dialog R.layout.sysdk_activity_onekey_login R.color.blue_ctc
v2.2.0.1 ->v2.2.0.2
- 替换aar包和jniLibs文件夹的so库文件;
- 优化授权页在未销毁完成时,拉起授权页出现默认页面或者空白页面
- 优化偶现的崩溃问题
- 添加debug日志开关 OneKeyLoginManager.getInstance().setDebug(true)
- 协议栏添加居左显示
- 优化流程逻辑
v2.2.0 ->v2.2.0.1
- 替换aar包和jniLibs文件夹的so库文件;
- 更新联通运营商包
- 优化内存泄漏问题
v2.2.0
- 替换aar包和jniLibs文件夹的so库文件;
- 授权页原有控件增加显示隐藏属性,X偏移量;
- 调用方法由原来的7个方法变更为3个方法,并舍弃监听方法;
初始化方法如下:
OneKeyLoginManager.getInstance().init(getApplicationContext(), appId, appKey,new InitListener() { @Override public void getInitStatus(int code, String result) { } });
v2.1.3
- 替换aar包和
jniLibs
文件夹的so库文件 - 增加销毁授权页方法,并添加开关参数
销毁授权页方法
O neKeyLoginManager.getInstance().finishAuthActivity();
开关参数:true:在点击一键登录后获取到token后自动销毁,false:授权页不销毁,由开发者控制销毁时机
O neKeyLoginManager.getInstance().LoginStart(false);
v2.1.2
- 更新sdk库文件 打开libs文件夹,复制其中的aar包替换掉之前旧包,删除上个版本的res中的xml布局文件分别是
sysdk_activity_onekey_login.xml --------------- 电信免密布局文件
activity_oauth.xml----------------------------- 联通免密布局文件
oauth_loading_dialog.xml --------------------- 联通免密布局文件
打开jnilib文件夹,添加项目对应架构的so库文件,也可以全部添加
- 更新AndroidManifest.xml(注:移除2.1.1版本中的PermissionActivity和OAuthActivity)
<!--****************************联通****************************--> <activity android:name="com.sdk.mobile.ui.OauthActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:launchMode="singleTop" android:screenOrientation="portrait"/> <!--************************移动********************************--> <activity android:name="com.cmic.sso.sdk.activity.LoginAuthActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:launchMode="singleTop" android:screenOrientation="portrait"/> <!--******************************电信***********************--> <activity android:name="com.chuanglan.shanyan_sdk.view.ShanYanOneKeyActivity" android:screenOrientation="portrait"/> <!--******************************协议页***********************--> <activity android:name="com.chuanglan.shanyan_sdk.view.CTCCPrivacyProtocolActivity" android:screenOrientation="portrait"/>
iOS版本升级指南
2.3.x版本需与服务端同步升级
220及221的用户可更新至220.x或者221.x最新版本平滑升级,无服务端变更
手动集成闪验所有版本通用方式:22.x版本向高版本升级时请替换闪验framework文件夹下所有静态库以及.bundle资源文件
替换SDK静态库: 删除旧版本SDK所有相关的`.framework``.bundle`文件,清除缓存,再导入新版SDK中的所有`.framework``.bundle`文件(.bundle文件注意保留开发者自定义资源)
远程仓库CocoaPods pod 集成方式:
1.如之前项目中手动集成过闪验,需删除项目中手动集成的.framework和.bundle资源文件,再进行pod安装
2.如之前项目中未集成或pod集成过闪验,直接pod版本升级至指定版本或最新版即可
3.如果pod 闪验版本(<=2.3.3.4)升级到 2.3.3.5 及以上版本,由于移动运营商SDK名称发生变化(TYRZSDK->TYRZUISDK) 需要先在pod文件中 注释闪验 执行pod install(删除旧的) 然后取消注释 并变更到新版本 重新执行pod install
v2.3.4.6->2.3.4.x及以上版本
- 替换所有sdk包体:删除原sdk所有包体,添加framework文件夹中所有包体
- 支持iOS12以下的项目需要导入networking.framework这个包
v2.3.0.x&v2.3.1.x ->v2.3.3.x/v2.3.4.x
- 替换所有sdk包体:删除原sdk所有包体,添加framework文件夹中所有包体
- 重要:如项目中使用闪验vcclass的字符串判断类名等非常规操作,如"ZUOAuthViewController"、"UAAuthViewController"、"PublicLoginViewController"、"CLCTCCCarouselViewController"、"CLCTCCCarouselNavigationController"、"UANavigationController"、"CLCTCCPublicLoginNavigationController"、"CLShanYanAuthPageIsaSwizzleNavigationController",现已统一为:CLShanYanAuthPageNavigationController(授权页nav)、CLShanYanAuthPageViewController(授权页vc)、CLCTCCCarouselNavigationController(弹窗模式下协议页nav)、CLCTCCCarouselViewController(协议页vc)
- 现sdk回调默认为全局global队列,如需UI操作请务必自行切换到主线程
v2.3.0.x ->v2.3.1.x
- 替换所有sdk包体
- 删除隐私协议 clAppPrivacyLineFragmentPadding、clAppPrivacyContentInset属性,目前只要设置clAppPrivacyTextContainerInset属性即可达到设置文本内边距的效果
v2.2.x ->v2.3.x
- 替换所有sdk包体
- 初始化init方法去除appkey参数
- iOS13下,若需全屏显示授权页,请设置baseConfigure.clAuthWindowModalPresentationStyle = @(UIModalPresentationOverFullScreen)
- 点击一键登录成功返回的token字段为
{
"token": ""
} ,
置换手机号接口变动,具体需看服务端对接文档
v2.2.0.x ->v2.2.1.2
- 替换CL_ShanYanSDK.framework即可
- 创建布局对象,按需设置布局值,再设置到uiconfigure.clOrientationLayOutPortrait属性
- 若要监控页面拉起和一键登录,可用带区分的拉起授权页方法
v2.1.3.x ->v2.2.1
- 替换所有framework和bundle
- 创建布局对象,按需设置布局值,再设置到uiconfigure.clOrientationLayOutPortrait属性
- 若要监控页面拉起和一键登录,可用带区分的拉起授权页方法
v2.2.0.4 ->v2.2.0.5
- 替换CL_ShanYanSDK.framework
v2.2.0.3 ->v2.2.0.4
- 替换所有framework和bundle
- 可使用原属性配置代码,也可以使用新的属性:
- 创建布局对象,按需设置布局值,再设置到uiconfigure.clOrientationLayOutPortrait属性
- 若要监控页面拉起和一键登录,可用带区分的拉起授权页方法
v2.2.0.2 ->v2.2.0.3
- 替换所有framework和bundle
- 优化无SIM卡时改变用户导航栏透明度
- 优化部分无SIM卡用户使用hook方法导致的崩溃
- 优化授权页logo圆角设置不生效bug
v2.2.0.1 ->v2.2.0.2
- 替换所有framework和bundle
- 更新联通SDK至3.7.5版本,提升拉起授权页速度
- 更新电信SDK至1.5.1支持bitcode版本
- 优化模拟器奔溃bug
- 新增一键登录按钮、脱敏手机号默认宽高,解决部分用户使用默认值不显示问题
- 优化导航栏左侧按钮设置
- 优化一键登录按钮背景色设置
- 优化SDK内存释放策略
v2.2.0 ->v2.2.0.1
- 替换所有framework和bundle
- 修复iOS12.0beta系统导致的崩溃bug
v2.2.0
- 升级请替换闪验framework,注意复制.bundle资源文件夹中的图片文件至项目中
- 完全统一三网界面并且开放更多CLUIConfigure 配置属性
- 简化拉起授权页传参
- 新增拉起授权页回调
v2.1.3.2
- 更新联通SDK至3.7.5版本,提升拉起授权页速度
- 更新电信SDK至1.5.1支持bitcode版本
v2.1.3.1
- 修复iOS12.0beta系统导致的崩溃bug
- 优化联通用户多次点击一键登录产生多次回调问题
v2.1.3
- 替换闪验framework文件
- 新增`manualDismiss`属性,选择授权页面销毁机制
- 删除`clNavigationAttrTitle`属性
更换为一下三个属性
/**导航栏标题*/ NSString * clNavText; /**导航栏标题字体*/ UIFont * clNavTextFont; /**导航栏标题颜色*/ UIColor * clNavTextColor;
v2.1.2.1_B
- 替换闪验framework
- 隐私协议(`《xxx隐私条款》`)/slogan(`由XXX提供认证服务`)Y轴偏移量需要用户端适配
v2.1.2_B
- 删除电信移动Bundle文件(已不需要),替换闪验framework
- 授权页可直接使用同一份配置,配置类修改为`CLUIConfigure(父类)`,也可以分别配置`CLCTCCUIConfigure``CLCMCCUIConfigure``CLCUCCUIConfigure`
- 预取号状态查询取消 +(CLSDKPrepareStutas)clSDKQuickLoginPrepareStutas;
- 隐私协议(`《xxx隐私条款》`)/slogan(`由XXX提供认证服务`)Y轴偏移量需要用户端适配
v2.1.1_B
- SDK初始化内部不再自动预取号,建议开发者手动添加预取号调用,建议在拉起授权页的VC的`-(void)viewDidLoad`中调用或者提前调用
- 对外的预初始化状态查询方法修改为预取号状态查询:
- +(CLSDKInitStutas)clSDKInitStutas;
- +(CLSDKPrepareStutas)clSDKQuickLoginPrepareStutas;
v2.0.7 ->v2.1.0
- 升级请替换account_login_sdk_core.framework、account_verify_sdk_core.framework、OAuth.framework联通静态库、EAccountApiSDK.framework电信静态库,`初次对接`请替换或导入所有framework文件
- 升级`电信SDK`
- 升级`联通SDK`
- 新增联通`授权页`可配置参数
- 修改`联通`可添加、配置控件Block
- 新增`电信`隐私条款属性配置
v2.0.6.x ->v2.0.7
更换所有framework文件
v2.0.5.x ->v2.0.6
授权页页面配置部分属性调整,建议先全部使用默认配置(不设置),再逐一设置 参考`v2.0.6.0:授权页页面配置属性调整`
v2.0.2/2.0.3/2.0.4 ->v2.0.5.x/2.0.6/2.0.7
- SDK初始化接口名更换,原先写在其他位置的初始化可直接转移到appdelegate启动方法中统一初始化且只需调用一次
- SDK一键登录接口名更换
- 原先的授权页面添加自定义控件通过创建页面配置类`CLC*CCUIConfigure`的自定义控件block来设置
- 原先的授权页页面调整通过创建页面配置类`CLC*CCUIConfigure`的属性来设置