集成云信推送SDK

This commit is contained in:
oujunhui
2020-07-30 14:11:19 +08:00
parent 0c0af14d51
commit 3d21b5f49a
6 changed files with 163 additions and 67 deletions

View File

@@ -0,0 +1,30 @@
{
"agcgw":{
"backurl":"connect-drcn.dbankcloud.cn",
"url":"connect-drcn.hispace.hicloud.com"
},
"client":{
"cp_id":"2850086000357865464",
"product_id":"736430079244430800",
"client_id":"355467170064368832",
"client_secret":"0EAB591E523474B7A0441DD4ED400FBE76F1730E499D028948BDA1AEA24A2232",
"app_id":"102156739",
"package_name":"com.xuanyi.accompany",
"api_key":"CgB6e3x91yYBKcn4fsMK/oZTCZNKo5QCRqE/1K6ZvpxI6drwrIBELZbub05G5yH6UFBmlJfHDyPbZvL3gpAGAxuw"
},
"service":{
"analytics":{
"collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
"resource_id":"p1",
"channel_id":""
},
"cloudstorage":{
"storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn"
},
"ml":{
"mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn"
}
},
"region":"CN",
"configuration_version":"1.0"
}

View File

@@ -255,7 +255,7 @@ dependencies {
// api(name: 'base-2.6.1.301', ext: 'aar') // api(name: 'base-2.6.1.301', ext: 'aar')
// api(name: 'push-2.6.1.301', ext: 'aar') // api(name: 'push-2.6.1.301', ext: 'aar')
// 魅族推送 // 魅族推送
implementation 'com.meizu.flyme.internet:push-internal:3.6.3@aar' implementation 'com.meizu.flyme.internet:push-internal:3.9.0@aar'
// vivo推送 // vivo推送
implementation files("libs/vivo_pushsdk-v2.9.0.0.aar") implementation files("libs/vivo_pushsdk-v2.9.0.0.aar")
//阿里云实名认证 //阿里云实名认证
@@ -299,7 +299,7 @@ dependencies {
repositories { repositories {
flatDir { flatDir {
dirs 'aliyun-libs', 'quick-pass-libs' dirs 'aliyun-libs', 'quick-pass-libs','com.huawei.agconnect'
} }
mavenCentral() mavenCentral()
} }

View File

@@ -12,6 +12,10 @@
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> -->
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <!-- 手机状态 -->
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> <!-- 控制呼吸灯,振动器等,用于新消息提醒 -->
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<!-- Required --> <!-- Required -->
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
@@ -29,7 +33,6 @@
<!-- 云信权限声明 --> <!-- 云信权限声明 -->
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />--> <!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
<!-- 控制呼吸灯,振动器等,用于新消息提醒 --> <!-- 控制呼吸灯,振动器等,用于新消息提醒 -->
<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.VIBRATE" /> <!-- 外置存储存取权限 --> <uses-permission android:name="android.permission.VIBRATE" /> <!-- 外置存储存取权限 -->
@@ -40,14 +43,13 @@
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" /> <uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE"/>
<uses-permission android:name="com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE"/>
<!-- 如果需要实时音视频通话模块,下面的权限也是必须的。否则,可以不加 --> <!-- 如果需要实时音视频通话模块,下面的权限也是必须的。否则,可以不加 -->
<uses-feature <uses-feature
android:glEsVersion="0x00020000" android:glEsVersion="0x00020000"
@@ -56,12 +58,20 @@
<permission <permission
android:name="${applicationId}.permission.RECEIVE_MSG" android:name="${applicationId}.permission.RECEIVE_MSG"
android:protectionLevel="signature" /> <!-- 接收 SDK 消息广播权限, 第三方 APP 接入时,请将 com.netease.nim.demo 替换为自己的包名 --> android:protectionLevel="signature" /> <!-- 接收 SDK 消息广播权限, 第三方 APP 接入时,请将 com.netease.nim.demo 替换为自己的包名 -->
<uses-permission android:name="com.xteam.xchat.permission.RECEIVE_MSG" /> <!-- 云信集成小米推送 start --> <uses-permission android:name="com.xteam.xchat.permission.RECEIVE_MSG" />
<!-- 云信集成小米推送 start -->
<permission <permission
android:name="${applicationId}.permission.MIPUSH_RECEIVE" android:name="${applicationId}.permission.MIPUSH_RECEIVE"
android:protectionLevel="signature" /> android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE" />
<!-- 云信集成小米推送 end -->
<uses-sdk tools:overrideLibrary="com.huawei.android.hms.base,com.huawei.android.hms.push" /><!-- 云信集成华为推送 -->
<uses-permission android:name="com.coloros.mcs.permission.RECIEVE_MCS_MESSAGE" /><!-- 云信集成oppo推送 -->
<uses-permission android:name="com.heytap.mcs.permission.RECIEVE_MCS_MESSAGE" />
<uses-permission android:name="${applicationId}.permission.MIPUSH_RECEIVE" /> <!-- 云信集成小米推送 end -->
<!-- 云信集成魅族推送 start --> <!-- 云信集成魅族推送 start -->
<!-- 兼容flyme5.0以下版本魅族内部集成pushSDK必填不然无法收到消息将{你的包名} 改开发者App的包名 --> <!-- 兼容flyme5.0以下版本魅族内部集成pushSDK必填不然无法收到消息将{你的包名} 改开发者App的包名 -->
<uses-permission android:name="com.meizu.flyme.push.permission.RECEIVE" /> <uses-permission android:name="com.meizu.flyme.push.permission.RECEIVE" />
@@ -79,15 +89,13 @@
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" /> <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
<!--vivo Push需要的权限-->
<uses-permission android:name="android.permission.INTERNET" />
<application <application
android:name=".application.XChatApplication" android:name=".application.XChatApplication"
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/app_logo" android:icon="@mipmap/app_logo"
android:label="@string/app_name" android:label="@string/app_name"
android:largeHeap="true" android:largeHeap="true"
android:supportsRtl="true"
android:requestLegacyExternalStorage="true" android:requestLegacyExternalStorage="true"
android:resizeableActivity="true" android:resizeableActivity="true"
android:theme="@style/MyMaterialTheme" android:theme="@style/MyMaterialTheme"
@@ -116,6 +124,8 @@
<meta-data <meta-data
android:name="android.max_aspect" android:name="android.max_aspect"
android:value="2.4" /> <!-- 刘海屏适配 end --> android:value="2.4" /> <!-- 刘海屏适配 end -->
<!-- 云信配置 begin ##################################################### --> <!-- 云信配置 begin ##################################################### -->
<!-- <!--
APP key, 可以在这里设置,也可以在 SDKOptions 中提供。 APP key, 可以在这里设置,也可以在 SDKOptions 中提供。
@@ -160,25 +170,37 @@
</intent-filter> </intent-filter>
</receiver> </receiver>
<receiver android:name=".reciever.NotificationClickReceiver" /> <!-- 云信进程间通信provider --> <receiver android:name=".reciever.NotificationClickReceiver" /> <!-- 云信进程间通信provider -->
<!-- 云信集成OPPO推送 start -->
<!-- 云信集成oppo推送 start -->
<service <service
android:name="com.netease.nimlib.mixpush.oppo.OppoPushService" android:name="com.netease.nimlib.mixpush.oppo.OppoPushService"
android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE"> android:permission="com.coloros.mcs.permission.SEND_MCS_MESSAGE">
<intent-filter> <intent-filter>
<action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE"/> <action android:name="com.coloros.mcs.action.RECEIVE_MCS_MESSAGE" />
</intent-filter> </intent-filter>
</service> </service>
<service <service
android:name="com.netease.nimlib.mixpush.oppo.OppoAppPushService" android:name="com.netease.nimlib.mixpush.oppo.OppoAppPushService"
android:permission="com.heytap.mcs.permission.SEND_MCS_MESSAGE"> android:permission="com.heytap.mcs.permission.SEND_MCS_MESSAGE">
<intent-filter> <intent-filter>
<action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE"/> <action android:name="com.heytap.mcs.action.RECEIVE_MCS_MESSAGE" />
</intent-filter>
</service><!-- 云信集成oppo推送 end -->
<!-- 云信集成华为推送 start -->
<service
android:name="com.netease.nimlib.mixpush.hw.HWPushService"
android:exported="false">
<intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter> </intent-filter>
</service> </service>
<!-- 云信集成OPPO推送 end --> <!-- 云信集成华为推送 end -->
<service android:name="com.netease.nimlib.service.ResponseService" />
<!-- 云信集成小米推送 start --> <!-- 云信集成小米推送 start -->
<!-- android:authorities="{包名}.ipc.provider", 请将com.netease.nim.demo替换为自己的包名 --> <!-- 配置的service和receiver -->
<provider <provider
android:name="com.netease.nimlib.ipc.NIMContentProvider" android:name="com.netease.nimlib.ipc.NIMContentProvider"
android:authorities="${applicationId}.ipc.provider" android:authorities="${applicationId}.ipc.provider"
@@ -234,15 +256,34 @@
<action android:name="com.xiaomi.mipush.ERROR" /> <action android:name="com.xiaomi.mipush.ERROR" />
</intent-filter> </intent-filter>
</receiver> <!-- 云信集成小米推送 end --> </receiver> <!-- 云信集成小米推送 end -->
<!-- 云信集成华为推送 start -->
<!-- 云信继承vivo推送 start-->
<service <service
android:name="com.netease.nimlib.mixpush.hw.HWPushService" android:name="com.vivo.push.sdk.service.CommandClientService"
android:exported="false"> android:exported="true" />
<activity
android:name="com.vivo.push.sdk.LinkProxyClientActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<receiver android:name="com.netease.nimlib.mixpush.vivo.VivoPushReceiver">
<intent-filter> <intent-filter>
<action android:name="com.huawei.push.action.MESSAGING_EVENT" /> <!-- 接收 push 消息 -->
<action android:name="com.vivo.pushclient.action.RECEIVE" />
</intent-filter> </intent-filter>
</service> </receiver>
<!-- 云信集成华为推送 end -->
<meta-data
android:name="com.vivo.push.api_key"
android:value="d9aa6e5aaa79b586d81d0f376906043c" />
<meta-data
android:name="com.vivo.push.app_id"
android:value="103904781" />
<!-- 云信集成vivo推送 end -->
<!-- 云信集成魅族推送 start --> <!-- 云信集成魅族推送 start -->
<!-- 配置的service和receiver --> <!-- 配置的service和receiver -->
<receiver android:name="com.netease.nimlib.mixpush.mz.MZPushReceiver"> <receiver android:name="com.netease.nimlib.mixpush.mz.MZPushReceiver">
@@ -267,7 +308,9 @@
<action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" /> <action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
<action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" /> <action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />
</intent-filter> </intent-filter>
</receiver> <!-- 云信集成魅族推送 end --> </receiver>
<!-- 云信集成魅族推送 end -->
<!-- 云信配置 end ##################################################### --> <!-- 云信配置 end ##################################################### -->
<!-- &lt;!&ndash; 安卓保活配置 &ndash;&gt; --> <!-- &lt;!&ndash; 安卓保活配置 &ndash;&gt; -->
<!-- <service --> <!-- <service -->
@@ -287,29 +330,6 @@
<!-- autolayout####################################################配置 --> <!-- autolayout####################################################配置 -->
<!--Vivo Push需要配置的service、activity--> <!--Vivo Push需要配置的service、activity-->
<!--配置的service, activity, receiver--> <!--配置的service, activity, receiver-->
<service
android:name="com.vivo.push.sdk.service.CommandClientService"
android:exported="true" />
<activity
android:name="com.vivo.push.sdk.LinkProxyClientActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<receiver android:name="com.netease.nimlib.mixpush.vivo.VivoPushReceiver">
<intent-filter>
<!-- 接收 push 消息 -->
<action android:name="com.vivo.pushclient.action.RECEIVE" />
</intent-filter>
</receiver>
<!--Vivo Push开放平台中应用的appid 和api key-->
<meta-data
android:name="com.vivo.push.api_key"
android:value="1a9cace2-da8a-4b49-a70d-9beefacf6096" />
<meta-data
android:name="com.vivo.push.app_id"
android:value="16517" />
<meta-data <meta-data
android:name="design_width" android:name="design_width"
@@ -1022,6 +1042,9 @@
<activity <activity
android:name="com.yizhuan.tutu.room_chat.activity.RoomMsgActivity" android:name="com.yizhuan.tutu.room_chat.activity.RoomMsgActivity"
android:theme="@style/room_message_activity" /> android:theme="@style/room_message_activity" />
<activity
android:name="com.yizhuan.tutu.room_chat.activity.RoomInviteFansActivity"
android:theme="@style/room_message_activity" />
<activity <activity
android:name="com.yizhuan.tutu.room_chat.activity.NimTeamRoomMessageActivity" android:name="com.yizhuan.tutu.room_chat.activity.NimTeamRoomMessageActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"

View File

@@ -25,6 +25,7 @@ import com.baidu.mobstat.StatService;
import com.bumptech.glide.request.target.ViewTarget; import com.bumptech.glide.request.target.ViewTarget;
import com.bun.miitmdid.core.JLibrary; import com.bun.miitmdid.core.JLibrary;
import com.coorchice.library.utils.LogUtils; import com.coorchice.library.utils.LogUtils;
import com.huawei.hms.support.common.ActivityMgr;
import com.ishumei.smantifraud.SmAntiFraud; import com.ishumei.smantifraud.SmAntiFraud;
import com.llew.huawei.verifier.LoadedApkHuaWei; import com.llew.huawei.verifier.LoadedApkHuaWei;
import com.microquation.linkedme.android.LinkedME; import com.microquation.linkedme.android.LinkedME;
@@ -106,6 +107,19 @@ import io.reactivex.plugins.RxJavaPlugins;
import io.realm.Realm; import io.realm.Realm;
import io.realm.RealmConfiguration; import io.realm.RealmConfiguration;
import static com.yizhuan.xchat_android_constants.XChatConstants.HW_APP_ID;
import static com.yizhuan.xchat_android_constants.XChatConstants.HW_CERTIFICATE_NAME;
import static com.yizhuan.xchat_android_constants.XChatConstants.MZ_APP_ID;
import static com.yizhuan.xchat_android_constants.XChatConstants.MZ_APP_KEY;
import static com.yizhuan.xchat_android_constants.XChatConstants.MZ_CERTIFICATE_NAME;
import static com.yizhuan.xchat_android_constants.XChatConstants.OPPO_APP_ID;
import static com.yizhuan.xchat_android_constants.XChatConstants.OPPO_APP_KEY;
import static com.yizhuan.xchat_android_constants.XChatConstants.OPPO_CERTIFICATE_NAME;
import static com.yizhuan.xchat_android_constants.XChatConstants.OPPO_SECRET;
import static com.yizhuan.xchat_android_constants.XChatConstants.VIVO_CERTIFICATE_NAME;
import static com.yizhuan.xchat_android_constants.XChatConstants.XM_APP_ID;
import static com.yizhuan.xchat_android_constants.XChatConstants.XM_APP_KEY;
import static com.yizhuan.xchat_android_constants.XChatConstants.XM_CERTIFICATE_NAME;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TYPE_OPEN_ROOM_NOTI; import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TYPE_OPEN_ROOM_NOTI;
/** /**
@@ -223,7 +237,7 @@ public class XChatApplication extends Application {
lifeManager = new ActivityLifeManager(); lifeManager = new ActivityLifeManager();
} }
registerActivityLifecycleCallback(lifeManager); registerActivityLifecycleCallback(lifeManager);
ActivityMgr.INST.init(this);
} }
dealHuaWeiCrash(); dealHuaWeiCrash();
@@ -364,24 +378,24 @@ public class XChatApplication extends Application {
DemoCache.setNotificationConfig(config); DemoCache.setNotificationConfig(config);
MixPushConfig mixPushConfig = new MixPushConfig(); MixPushConfig mixPushConfig = new MixPushConfig();
/* mixPushConfig.hwCertificateName = "tutuHuaweiAndroid"; //华为推送
mixPushConfig.hwAppId = HW_APP_ID;
mixPushConfig.mzAppId = "125242"; mixPushConfig.hwCertificateName = HW_CERTIFICATE_NAME;
mixPushConfig.mzAppKey = "1c478e5eaace4c41ba269d2ca7c9bd69"; //小米推送
mixPushConfig.mzCertificateName = "qingxunMeizuAndroid2"; mixPushConfig.xmAppId = XM_APP_ID;
mixPushConfig.xmAppKey = XM_APP_KEY;
mixPushConfig.xmAppId = "2882303761518089228"; mixPushConfig.xmCertificateName = XM_CERTIFICATE_NAME;
mixPushConfig.xmAppKey = "5781808939228"; //魅族推送
mixPushConfig.xmCertificateName = "qingxunXiaomiAndroid"; mixPushConfig.mzAppId = MZ_APP_ID;
mixPushConfig.mzAppKey = MZ_APP_KEY;
mixPushConfig.vivoCertificateName = "qingxunVivoAndroid";*/ mixPushConfig.mzCertificateName = MZ_CERTIFICATE_NAME;
//vivo推送
// 下架状态,没有完成接入 mixPushConfig.vivoCertificateName = VIVO_CERTIFICATE_NAME;
mixPushConfig.oppoAppId = "30272213"; //oppo推送
mixPushConfig.oppoAppKey = "631b6753a1fa481e88dd57793a04e531"; mixPushConfig.oppoAppId = OPPO_APP_ID;
mixPushConfig.oppoAppSercet = "c963ee7c0ba54fbfb3124b4aa7011b17"; mixPushConfig.oppoAppKey = OPPO_APP_KEY;
mixPushConfig.oppoCertificateName = "accompanyOppoAndroid"; mixPushConfig.oppoAppSercet = OPPO_SECRET;
mixPushConfig.oppoCertificateName = OPPO_CERTIFICATE_NAME;
options.mixPushConfig = mixPushConfig; options.mixPushConfig = mixPushConfig;
return options; return options;

View File

@@ -13,7 +13,7 @@ buildscript {
maven { url 'https://jitpack.io' } maven { url 'https://jitpack.io' }
google() google()
jcenter() jcenter()
maven {url 'https://developer.huawei.com/repo/'} maven {url 'http://developer.huawei.com/repo/'}
} }
dependencies { dependencies {
@@ -38,7 +38,7 @@ allprojects {
maven { url "http://mvn.mob.com/android" } maven { url "http://mvn.mob.com/android" }
maven { url 'https://dl.bintray.com/umsdk/release' } maven { url 'https://dl.bintray.com/umsdk/release' }
maven { url 'https://dl.bintray.com/linkedme2016/lkme-deeplinks' } maven { url 'https://dl.bintray.com/linkedme2016/lkme-deeplinks' }
maven { url 'https://developer.huawei.com/repo/'} maven { url 'http://developer.huawei.com/repo/' }
} }
//网络慢的话就去 https://maven.aliyun.com/mvn/view 里面找个代理的仓库。 //网络慢的话就去 https://maven.aliyun.com/mvn/view 里面找个代理的仓库。
} }

View File

@@ -268,6 +268,35 @@ public class XChatConstants {
public static final String REPORT_TYPE_DYNAMIC_SQUARE = "DYNAMIC_SQUARE";//广场动态 public static final String REPORT_TYPE_DYNAMIC_SQUARE = "DYNAMIC_SQUARE";//广场动态
/**
* 小米推送
*/
public static final String XM_APP_ID = "2882303761518389079";
public static final String XM_APP_KEY = "5551838995079";
public static final String XM_CERTIFICATE_NAME = "accompanyXiaomiAndroid";
/**
* 魅族推送
*/
public static final String MZ_APP_ID = "133017";
public static final String MZ_APP_KEY = "402fef6295cc493fbd6d7b9b179df7b5";
public static final String MZ_CERTIFICATE_NAME = "accompanyMeizu";
/**
* 华为推送
*/
public static final String HW_APP_ID = "102156739";
public static final String HW_CERTIFICATE_NAME = "accompanyHuawei";
/**
* vivo推送
*/
public static final String VIVO_CERTIFICATE_NAME = "accompanyVivo";
/**
* oppo推送
*/
public static final String OPPO_CERTIFICATE_NAME = "accompanyOppo";
public static final String OPPO_APP_ID = "30272213";
public static final String OPPO_APP_KEY = "631b6753a1fa481e88dd57793a04e531";
public static final String OPPO_SECRET = "c963ee7c0ba54fbfb3124b4aa7011b17";
// 侧耳 // 侧耳
// public static final String QUICK_PASS_BUSINESS_ID = BuildConfig.DEBUG ? "cadbb4ed892549dab4d1adc9d62013bb" : "ba4a642810294561b9cd17034a448b49"; // public static final String QUICK_PASS_BUSINESS_ID = BuildConfig.DEBUG ? "cadbb4ed892549dab4d1adc9d62013bb" : "ba4a642810294561b9cd17034a448b49";