在工程中集成SDK
说明 对于SDK 4.4.0版本,请您务必升级SDK中的安全加固相关的aar包。
添加SDK包依赖
以直接在应用下进行集成为例,在应用module下的build.gradle文件内,声明flatDir路径(如果已有则忽略):apply plugin: 'com.android.application'
repositories {
flatDir {
dirs '../libs'
}
}
以gradle版本大于等于3.0.0(注意非gradle tools版本,gradle版本可在gradle/wrapper/gradle-wrapper.properties下查看)为例,在应用module下的build.gradle文件内声明SDK包依赖:dependencies {
implementation fileTree(dir: '../libs', include: ['*.jar'])
implementation (name:'rpsdk-4.4.0', ext:'aar')
implementation (name:'oss-android-sdk-2.9.2', ext:'aar')
implementation (name:'SecurityGuardSDK-external-release-5.5.13814304', ext:'aar')
implementation (name:'SecurityBodySDK-external-release-5.5.14', ext:'aar')
implementation (name:'MiddleTierSDK-external-release-5.5.13814304', ext:'aar')
implementation (name:'windvane', ext:'aar')
}
说明 关于AAR包的引入方式建议采用上面例子的写法,不要和JAR包混在一起引入,防止某些gradle版本无法正确解出AAR包内容。
关于ABI类型
SDK目前支持armeabi、armeabi-v7a、arm64-v8a三种ABI类型,其中RPSDK从3.2.0.0版本开始不再默认包含armeabi类型的SO库文件,建议接入方在应用module下的build.gradle文件内,添加abiFilters配置,示例: android {
defaultConfig {
...
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
}
关于签名配置
检查您工程的Gradle Plugin版本是否大于3.4.1,如果Gradle Plugin版本大于3.4.1,请您将Gradle Plugin版本降至3.4.1,并将Gradle版本降至5.4.1。如果无法降低Gradle
Plugin及Gradle版本,需要在您工程的App模块下的build.gradle中添加签名配置,示例:signingConfigs {
release {
// 修改为你的release签名文件信息。
storeFile file('test.jks')
storePassword "test1234"
keyAlias "key0"
keyPassword "test1234"
// 修改为你的release签名文件信息。
v1SigningEnabled true
v2SigningEnabled true
}
debug {
// 修改为你的release签名文件信息。
storeFile file('test.jks')
storePassword "test1234"
keyAlias "key0"
keyPassword "test1234"
// 你的debug签名文件信息。
v1SigningEnabled true
v2SigningEnabled false
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
signingConfig signingConfigs.debug
}
}
关于混淆配置
如果您的应用使用了ProGuard进行代码混淆,为了保证实人认证服务需要的一些类不被混淆,需要在ProGuard配置文件中添加相关指令。
以AS为例,在应用module下的build.gradle文件内,如果配置了proguardFiles,并且启用了minifyEnabled,则表明已使用指定的配置文件(一般为proguard-rules.pro)进行了代码混淆,示例: android {
...
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
那么在相应的ProGuard配置文件(proguard-rules.pro)中添加以下配置信息,保证实人认证服务需要的类不被混淆,示例:-keep class com.taobao.securityjni.**{*;}
-keep class com.taobao.wireless.security.**{*;}
-keep class com.ut.secbody.**{*;}
-keep class com.taobao.dp.**{*;}
-keep class com.alibaba.wireless.security.**{*;}
-keep class com.alibaba.security.rp.**{*;}
-keep class com.alibaba.security.cloud.**{*;}
-keep class com.alibaba.security.realidentity.**{*;}
-keep class com.alibaba.security.biometrics.**{*;}
-keep class com.alibaba.sdk.android.**{*;}
-keep class android.taobao.windvane.**{*;}
-keep class android.webkit.JavascriptInterface
关于权限配置
使用SDK需要在AndroidManifest.xml中添加以下权限声明(已有则忽略):
如果您使用的RPSDK版本在3.0.0.4(不含)以下,还需要添加以下权限声明(已有则忽略):