update: 更新生命周期和对应的逻辑

deeplink
胡宇飞 2024-03-13 17:26:20 +08:00
parent bb4073aa2f
commit b1bf57cbed
2 changed files with 38 additions and 41 deletions

View File

@ -54,6 +54,7 @@ namespace Guru
//-------------------------------- Parameters --------------------------------
public double Tch02Value() => parameters?.tch_020 ?? 0;
public bool IsAppReview() => parameters?.apple_review ?? false;
public bool EnableErrorLog() => parameters?.enable_errorlog ?? false;
public bool DMACountryCheck() => parameters?.dma_country_check ?? false;
public string DMAMapRule() => parameters?.dma_map_rule ?? "";
public bool UseUUID() => parameters?.using_uuid ?? false;
@ -93,6 +94,7 @@ namespace Guru
public string dma_map_rule = "";
public bool dma_country_check = false;
public bool apple_review = false; // 苹果审核标志位
public bool enable_errorlog = false;
}
[Serializable]

View File

@ -46,11 +46,8 @@ namespace Guru
return _guruSettings;
}
}
private static DateTime _initTime;
private static bool _isDebugEnabled = false;
/// <summary>
/// Debug Mode
@ -104,7 +101,7 @@ namespace Guru
public static void Init(GuruSDKInitConfig config, Action<bool> onComplete)
{
_initTime = DateTime.Now.ToUniversalTime();
LogI($"---- Guru SDK init ----\n{config.ToString()}");
LogI($"#1 ---- Guru SDK init ----\n{config.ToString()}");
Instance.StartWithConfig(config, onComplete);
}
@ -123,25 +120,21 @@ namespace Guru
_initConfig = config;
_onCompleteCallback = onComplete;
_isDebugEnabled = config.DebugMode;
GuruRepoter.Install(); // Install Crashlytics Logger
bool isDebug = false;
#if DEBUG
isDebug = true;
#endif
Analytics.InstallGuruAnalytics(isDebug); // 提前初始化 GuruAnalytics
//--- 之后的逻辑放在 Start 方法内 ---
}
void Start()
{
//---- Init All tools ----
LogI($"--- InitFirebase ---");
LogI($"#2 --- InitFirebase ---");
//---------- Start Firebase ------------
FirebaseUtil.InitFirebase(OnFirebaseReady);
// FirebaseUtil.OnFetchRemoteSuccess+= OnFetchRemoteCallback;
FirebaseUtil.InitFirebase(OnFirebaseReady); // 确保所有的逻辑提前被调用到
LogI($"#2.1 --- InitFacebook ---");
//---------- Start Facebook ------------
FBService.Instance.StartService();
LogI($"#2.2 --- Call SDK init complete -> callback: { (_onCompleteCallback == null ? "Null" : _onCompleteCallback.ToString()) } ---");
_onCompleteCallback?.Invoke(true);
}
@ -150,28 +143,21 @@ namespace Guru
/// </summary>
private void OnFirebaseReady()
{
LogI($"--- OnFirebaseReady ---");
LogI($"#3 --- On FirebaseReady ---");
IsInitialSuccess = true;
if(!string.IsNullOrEmpty(IPMConfig.IPM_UID)) SetUID(IPMConfig.IPM_UID);
LogI($"--- UID:{IPMConfig.IPM_UID} ---");
if(!string.IsNullOrEmpty(IPMConfig.IPM_UID)) SetUID(IPMConfig.IPM_UID); ;
LogI($"--- Init RemoteConfig ---");
LogI($"#3.5 --- Call InitRemoteConfig ---");
// 开始Remote Manager初始化
RemoteConfigManager.Init(BuildDefaultRemoteData(_initConfig.DefaultRemoteData));
RemoteConfigManager.OnFetchCompleted += OnFetchRemoteCallback;
// 延迟执行 SDK 回调
// Delay(0, () =>
// {
LogI($"--- SDK Init Complete -> Callback: { (_onCompleteCallback == null ? "Null" : "NotNull") } ---");
_onCompleteCallback?.Invoke(true);
// });
LogI($"--- Apply online services config ---");
// 根据上次的云控配置来初始化参数
SetupServicesConfig();
LogI($"#4 --- Apply remote services config ---");
// 根据缓存的云控配置来初始化参数
InitAllServices();
LogI($"#5 --- sync sdk time ---");
var sp = DateTime.Now.ToUniversalTime() - _initTime;
LogSDKInitTime(sp.TotalSeconds);
}
@ -198,7 +184,7 @@ namespace Guru
/// <param name="success"></param>
private void OnFetchRemoteCallback(bool success)
{
LogI($"--- Remote fetch complete: {success} ---");
LogI($"#6 --- Remote fetch complete: {success} ---");
ABTestManager.Init(); // 启动AB测试解析器
Callbacks.Remote._onRemoteFetchComplete?.Invoke(success);
}
@ -210,7 +196,7 @@ namespace Guru
/// <summary>
/// Apply Cloud guru-service configs for sdk assets
/// </summary>
private void SetupServicesConfig()
private void InitAllServices()
{
bool useKeywords = false;
bool useIAP = true;
@ -226,9 +212,13 @@ namespace Guru
Try(() =>
{
LogI($"--- Init apply services ---");
//--------------------------------
LogI($"#4.1 --- Init apply services ---");
//----------------------------------------------------------------
// 自打点设置错误上报
GuruAnalytics.EnableErrorLog = _appServicesConfig.EnableErrorLog();
// adjust 事件设置
if (null != _appServicesConfig.adjust_settings && null != GuruSettings)
{
// 更新 Adjust Tokens
@ -239,6 +229,8 @@ namespace Guru
GuruSettings.UpdateAdjustEvents(_appServicesConfig.adjust_settings.events);
}
LogI($"#4.2 --- Init GuruSttings ---");
// GuruSettings 设置
if (null != _appServicesConfig.app_settings)
{
if (_appServicesConfig.Tch02Value() > 0)
@ -251,6 +243,9 @@ namespace Guru
if (_appServicesConfig.UseUUID())
{
IPMConfig.UsingUUID = true; // 开始使用 UUID 作为 DeviceID 标识
}
#if UNITY_IOS
@ -285,7 +280,7 @@ namespace Guru
// InitIAP(_initConfig.GoogleKeys, _initConfig.AppleRootCerts); // 初始化IAP
Try(() =>
{
LogI($"--- Init IAP ---");
LogI($"#4.3 --- Init IAP ---");
InitIAP(_initConfig.GoogleKeys, _initConfig.AppleRootCerts); // 初始化IAP
}, ex =>
{
@ -299,7 +294,7 @@ namespace Guru
// KeywordsManager.Install(Model.IsIAPUser, Model.SuccessLevelCount); // 启动Keyword管理器
Try(() =>
{
LogI($"--- Init Keywords ---");
LogI($"#4.4 --- Init Keywords ---");
KeywordsManager.Install(Model.IsIAPUser, Model.SuccessLevelCount); // 启动Keyword管理器
}, ex =>
{
@ -313,7 +308,7 @@ namespace Guru
// StartAppleReviewFlow(); // 直接显示 ATT 弹窗, 跳过 Consent 流程
Try(() =>
{
LogI($"--- StartAppleReviewFlow ---");
LogI($"#4.5.0 --- StartAppleReviewFlow ---");
StartAppleReviewFlow(); // 直接显示 ATT 弹窗, 跳过 Consent 流程
}, ex =>
{
@ -328,7 +323,7 @@ namespace Guru
// StartConsentFlow();
Try(() =>
{
LogI($"--- #1. StartConsentFlow ---");
LogI($"#4.5 --- StartConsentFlow ---");
StartConsentFlow();
}, ex =>
{
@ -452,7 +447,7 @@ namespace Guru
/// <param name="message"></param>
public static void Report(string message)
{
GuruRepoter.Log(message);
Analytics.LogCrashlytics(message, false);
}
/// <summary>
@ -461,7 +456,7 @@ namespace Guru
/// <param name="message"></param>
public static void ReportException(string message)
{
GuruRepoter.LogException(message);
Analytics.LogCrashlytics(message);
}
/// <summary>
@ -470,7 +465,7 @@ namespace Guru
/// <param name="ex"></param>
public static void ReportException(Exception ex)
{
GuruRepoter.LogException(ex);
Analytics.LogCrashlytics(ex);
}
#endregion