diff --git a/Runtime/GuruAdjust/AdjustService.cs b/Runtime/GuruAdjust/AdjustService.cs
index 8a25782..79e69c8 100644
--- a/Runtime/GuruAdjust/AdjustService.cs
+++ b/Runtime/GuruAdjust/AdjustService.cs
@@ -3,7 +3,7 @@ namespace Guru
{
using UnityEngine;
using com.adjust.sdk;
- using System.Collections;
+ using System;
public static class AdjustService
{
@@ -45,7 +45,8 @@ namespace Guru
///
///
/// MIR 追踪 AppID
- public static void StartService(string appToken, string fbAppId = "")
+ ///
+ public static void StartService(string appToken, string fbAppId = "", Action onDeeplinkCallback = null)
{
if (string.IsNullOrEmpty(appToken))
{
@@ -65,7 +66,11 @@ namespace Guru
#if UNITY_ANDROID
if (!string.IsNullOrEmpty(fbAppId)) config.setFbAppId(fbAppId); // 注入 MIR ID
#endif
-
+
+ if (onDeeplinkCallback != null)
+ {
+ config.setDeferredDeeplinkDelegate(onDeeplinkCallback); // 注入 Deeplink 回调
+ }
#if UNITY_EDITOR || DEBUG
config.setLogDelegate(log => LogI(LOG_TAG, log));
diff --git a/Runtime/GuruCore/Runtime/Firebase/FirebaseUtil.cs b/Runtime/GuruCore/Runtime/Firebase/FirebaseUtil.cs
index 9ce380d..a27e3ef 100644
--- a/Runtime/GuruCore/Runtime/Firebase/FirebaseUtil.cs
+++ b/Runtime/GuruCore/Runtime/Firebase/FirebaseUtil.cs
@@ -9,7 +9,6 @@ namespace Guru
public static partial class FirebaseUtil
{
private static readonly string LOG_TAG = "Firebase";
- private static bool _isDebug = false;
private static bool _isReady = false;
public static bool IsReady => _isReady;
@@ -19,16 +18,17 @@ namespace Guru
public static Action OnFirebaseAuthResult;
public static Action OnUserAuthResult;
+ private static Action _onDeeplinkCallback;
-
-
- public static void InitFirebase(Action callback, bool isDebug = false)
+ ///
+ /// 初始化 Firebase 组件
+ ///
+ ///
+ ///
+ public static void InitFirebase(Action callback, Action onDeeplinkCallback = null)
{
_isReady = false;
- _isDebug = isDebug;
- Analytics.InitAnalytics(); // 打点提前初始化
-
- // Loom.StartUp(); // 确保主线程开启
+ _onDeeplinkCallback = onDeeplinkCallback;
// 初始化 Fireabse 依赖
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task => {
@@ -93,34 +93,45 @@ namespace Guru
}
}
+
+ private static void InitAssetByFirebaseIdAsync()
+ {
+ Debug.Log($"[SDK] --- InitAssetByFirebaseIdAsync");
+ // 异步获取 FirebaseID
+ FirebaseAnalytics.GetAnalyticsInstanceIdAsync()
+ .ContinueWithOnMainThread(task =>
+ {
+ string fid = task.Result;
+ if (task.IsCompleted && !string.IsNullOrEmpty(fid))
+ {
+ // 保存本地ID备份
+ IPMConfig.FIREBASE_ID = fid; // 保存FirebaseID
+ Debug.Log($"[SDK] --- Get FirebaseID: {fid}");
+ GuruAnalytics.SetFirebaseId(fid);
+ }
+ else
+ {
+ Debug.LogError($"[SDK] --- Fetch FirebaseID failed on start!");
+ }
+
+ //--- 结束后启动相关的服务 ---
+ InitAdjustService(_onDeeplinkCallback); // 启动 AdjustService
+ InitAnalytics(); // 初始化打点逻辑和实现
+ });
+ }
+
+
#region 启动 Adjust 服务
///
/// 启动 Adjust 服务
///
- private static void InitAdjustService()
+ private static void InitAdjustService(Action onDeeplinkCallback)
{
- FirebaseAnalytics.GetAnalyticsInstanceIdAsync()
- .ContinueWithOnMainThread(task =>
- {
- if (task.IsCompleted && !string.IsNullOrEmpty(task.Result))
- {
- // 保存本地ID备份
- string fid = task.Result;
- IPMConfig.FIREBASE_ID = fid; // 保存FirebaseID
- }
- else
- {
- UnityEngine.Debug.LogError($"Fetch FirebaseID failed on start!");
- }
-
- // 启动 AdjustService
- string appToken = GuruSettings.Instance.AdjustSetting?.GetAppToken() ?? "";
- string fbAppId = GuruSettings.Instance.IPMSetting.FacebookAppId;
- AdjustService.StartService(appToken, fbAppId);
- });
-
-
+ // 启动 AdjustService
+ string appToken = GuruSettings.Instance.AdjustSetting?.GetAppToken() ?? "";
+ string fbAppId = GuruSettings.Instance.IPMSetting.FacebookAppId;
+ AdjustService.StartService(appToken, fbAppId, onDeeplinkCallback);
}