151 lines
5.2 KiB
C#
151 lines
5.2 KiB
C#
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT license.
|
|
|
|
using System.IO;
|
|
using UnityEditor;
|
|
|
|
public class AppCenterSettingsMakerIos : IAppCenterSettingsMaker
|
|
{
|
|
private static readonly string TemplateFilePath = AppCenterSettingsContext.AppCenterPath + "/Plugins/iOS/Core/AppCenterStarter.original";
|
|
private static readonly string TargetFilePath = AppCenterSettingsContext.AppCenterPath + "/Plugins/iOS/Core/AppCenterStarter.m";
|
|
private const string AppSecretSearchText = "appcenter-app-secret";
|
|
private const string AllowNetworkRequestsText = "allow-network-requests";
|
|
private const string TransmissionTargetTokenSearchText = "appcenter-transmission-target-token";
|
|
private const string LogUrlSearchText = "custom-log-url";
|
|
private const string LogUrlToken = "APPCENTER_UNITY_USE_CUSTOM_LOG_URL";
|
|
private const string LogLevelSearchText = "0/*LOG_LEVEL*/";
|
|
private const string StartupTypeSearchText = "0/*STARTUP_TYPE*/";
|
|
private const string UseCrashesToken = "APPCENTER_UNITY_USE_CRASHES";
|
|
private const string UseAnalyticsToken = "APPCENTER_UNITY_USE_ANALYTICS";
|
|
private const string UseDistributeToken = "APPCENTER_UNITY_USE_DISTRIBUTE";
|
|
private const string DistributeDisableAutomaticCheckForUpdateToken = "APPCENTER_DISTRIBUTE_DISABLE_AUTOMATIC_CHECK_FOR_UPDATE";
|
|
private const string ApiUrlSearchText = "custom-api-url";
|
|
private const string ApiUrlToken = "APPCENTER_UNITY_USE_CUSTOM_API_URL";
|
|
private const string InstallUrlSearchText = "custom-install-url";
|
|
private const string InstallUrlToken = "APPCENTER_UNITY_USE_CUSTOM_INSTALL_URL";
|
|
private const string UseCustomMaxStorageSize = "APPCENTER_USE_CUSTOM_MAX_STORAGE_SIZE";
|
|
private const string MaxStorageSize = "APPCENTER_MAX_STORAGE_SIZE";
|
|
private const string UpdateTrackSearchText = "1 /*UPDATE_TRACK*/";
|
|
|
|
private string _loaderFileText;
|
|
private bool _enableDistributeForDebuggableBuild;
|
|
|
|
public AppCenterSettingsMakerIos()
|
|
{
|
|
_loaderFileText = File.ReadAllText(TemplateFilePath);
|
|
}
|
|
|
|
public void SetLogLevel(int logLevel)
|
|
{
|
|
_loaderFileText = _loaderFileText.Replace(LogLevelSearchText, logLevel.ToString());
|
|
}
|
|
|
|
public void IsAllowNetworkRequests(bool isAllowed)
|
|
{
|
|
_loaderFileText = _loaderFileText.Replace(AllowNetworkRequestsText, isAllowed ? "YES" : "NO");
|
|
}
|
|
|
|
public void SetStartupType(int startupType)
|
|
{
|
|
_loaderFileText = _loaderFileText.Replace(StartupTypeSearchText, startupType.ToString());
|
|
}
|
|
|
|
public void SetLogUrl(string logUrl)
|
|
{
|
|
AddToken(LogUrlToken);
|
|
_loaderFileText = _loaderFileText.Replace(LogUrlSearchText, logUrl);
|
|
}
|
|
|
|
public void SetAppSecret(AppCenterSettings settings)
|
|
{
|
|
_loaderFileText = _loaderFileText.Replace(AppSecretSearchText, settings.iOSAppSecret);
|
|
}
|
|
|
|
public void SetTransmissionTargetToken(string transmissionTargetToken)
|
|
{
|
|
_loaderFileText = _loaderFileText.Replace(TransmissionTargetTokenSearchText, transmissionTargetToken);
|
|
}
|
|
|
|
public void StartCrashesClass()
|
|
{
|
|
AddToken(UseCrashesToken);
|
|
}
|
|
|
|
public void StartDistributeClass()
|
|
{
|
|
if (_enableDistributeForDebuggableBuild || !EditorUserBuildSettings.development)
|
|
{
|
|
AddToken(UseDistributeToken);
|
|
}
|
|
}
|
|
|
|
public void StartAnalyticsClass()
|
|
{
|
|
AddToken(UseAnalyticsToken);
|
|
}
|
|
|
|
public void SetApiUrl(string apiUrl)
|
|
{
|
|
AddToken(ApiUrlToken);
|
|
_loaderFileText = _loaderFileText.Replace(ApiUrlSearchText, apiUrl);
|
|
}
|
|
|
|
public void SetInstallUrl(string installUrl)
|
|
{
|
|
AddToken(InstallUrlToken);
|
|
_loaderFileText = _loaderFileText.Replace(InstallUrlSearchText, installUrl);
|
|
}
|
|
|
|
public void CommitSettings()
|
|
{
|
|
File.WriteAllText(TargetFilePath, _loaderFileText);
|
|
}
|
|
|
|
public void SetMaxStorageSize(long size)
|
|
{
|
|
AddToken(UseCustomMaxStorageSize);
|
|
_loaderFileText = _loaderFileText.Replace(MaxStorageSize, size.ToString());
|
|
}
|
|
|
|
private void AddToken(string token)
|
|
{
|
|
var tokenText = "#define " + token + "\n";
|
|
_loaderFileText = tokenText + _loaderFileText;
|
|
}
|
|
|
|
public bool IsStartFromAppCenterBehavior(AppCenterSettingsAdvanced advancedSettings)
|
|
{
|
|
return advancedSettings.StartIOSNativeSDKFromAppCenterBehavior;
|
|
}
|
|
|
|
public bool IsAnalyticsAvailable()
|
|
{
|
|
return Directory.Exists(AppCenterSettingsContext.AppCenterPath + "/Plugins/iOS/Analytics");
|
|
}
|
|
|
|
public bool IsCrashesAvailable()
|
|
{
|
|
return Directory.Exists(AppCenterSettingsContext.AppCenterPath + "/Plugins/iOS/Crashes");
|
|
}
|
|
|
|
public bool IsDistributeAvailable()
|
|
{
|
|
return Directory.Exists(AppCenterSettingsContext.AppCenterPath + "/Plugins/iOS/Distribute");
|
|
}
|
|
|
|
public void SetShouldEnableDistributeForDebuggableBuild()
|
|
{
|
|
_enableDistributeForDebuggableBuild = true;
|
|
}
|
|
|
|
public void SetDistributeDisableAutomaticCheckForUpdate()
|
|
{
|
|
AddToken(DistributeDisableAutomaticCheckForUpdateToken);
|
|
}
|
|
|
|
public void SetUpdateTrack(int updateTrack)
|
|
{
|
|
_loaderFileText = _loaderFileText.Replace(UpdateTrackSearchText, updateTrack.ToString());
|
|
}
|
|
}
|