├── .gitignore ├── CHANGELOG.md ├── Images └── AppCenterSDKEditorExtension.png ├── LICENSE ├── README.md ├── RELEASE.md ├── SECURITY.md ├── Source ├── .gitignore ├── Assets │ ├── AppCenterEditorExtensions.meta │ └── AppCenterEditorExtensions │ │ ├── Editor.meta │ │ └── Editor │ │ ├── AppCenterEditor.cs │ │ ├── AppCenterEditor.cs.meta │ │ ├── Resources.meta │ │ ├── Resources │ │ ├── AppCenterEditorPrefsSO.asset │ │ └── AppCenterEditorPrefsSO.asset.meta │ │ ├── Scripts.meta │ │ ├── Scripts │ │ ├── AppCenterEditorSDK.meta │ │ ├── AppCenterEditorSDK │ │ │ ├── AppCenterEditorHttp.cs │ │ │ ├── AppCenterEditorHttp.cs.meta │ │ │ ├── Constants.cs │ │ │ ├── Constants.cs.meta │ │ │ ├── ISerializer.cs │ │ │ ├── ISerializer.cs.meta │ │ │ ├── JsonWrapper.cs │ │ │ ├── JsonWrapper.cs.meta │ │ │ ├── PackagesInstaller.cs │ │ │ ├── PackagesInstaller.cs.meta │ │ │ ├── SimpleJson.cs │ │ │ ├── SimpleJson.cs.meta │ │ │ ├── SimpleJsonInstance.cs │ │ │ └── SimpleJsonInstance.cs.meta │ │ ├── Components.meta │ │ ├── Components │ │ │ ├── DrawUtils.cs │ │ │ ├── DrawUtils.cs.meta │ │ │ ├── ProgressBar.cs │ │ │ └── ProgressBar.cs.meta │ │ ├── Panels.meta │ │ ├── Panels │ │ │ ├── AppCenterEditorHeader.cs │ │ │ ├── AppCenterEditorHeader.cs.meta │ │ │ ├── AppCenterEditorMenu.cs │ │ │ ├── AppCenterEditorMenu.cs.meta │ │ │ ├── AppCenterEditorSDKTools.cs │ │ │ ├── AppCenterEditorSDKTools.cs.meta │ │ │ ├── SDKPackage.meta │ │ │ └── SDKPackage │ │ │ │ ├── AppCenterAnalyticsPackage.cs │ │ │ │ ├── AppCenterAnalyticsPackage.cs.meta │ │ │ │ ├── AppCenterCrashesPackage.cs │ │ │ │ ├── AppCenterCrashesPackage.cs.meta │ │ │ │ ├── AppCenterDistributePackage.cs │ │ │ │ ├── AppCenterDistributePackage.cs.meta │ │ │ │ ├── AppCenterSDKPackage.cs │ │ │ │ └── AppCenterSDKPackage.cs.meta │ │ ├── Utils.meta │ │ └── Utils │ │ │ ├── AppCenterEditorGuiFieldHelper.cs │ │ │ ├── AppCenterEditorGuiFieldHelper.cs.meta │ │ │ ├── AppCenterEditorHelper.cs │ │ │ ├── AppCenterEditorHelper.cs.meta │ │ │ ├── AppCenterEditorPrefsSO.cs │ │ │ ├── AppCenterEditorPrefsSO.cs.meta │ │ │ ├── AppCenterEditorVersion.cs │ │ │ ├── AppCenterEditorVersion.cs.meta │ │ │ ├── Coroutiner.cs │ │ │ ├── EdExLoggerFactory.cs │ │ │ ├── EdExLoggerFactory.cs.meta │ │ │ ├── EditorCoroutine.cs.meta │ │ │ ├── IEdExLogger.cs │ │ │ ├── IEdExLogger.cs.meta │ │ │ ├── LocalLogger.cs │ │ │ └── LocalLogger.cs.meta │ │ ├── UI.meta │ │ └── UI │ │ ├── AppCenterStyles.guiskin │ │ ├── AppCenterStyles.guiskin.meta │ │ ├── Fonts.meta │ │ ├── Fonts │ │ ├── Avalon Bold.ttf │ │ ├── Avalon Bold.ttf.meta │ │ ├── Avalon.ttf │ │ └── Avalon.ttf.meta │ │ ├── Images.meta │ │ └── Images │ │ ├── AppCenterEditorIcon.png │ │ ├── AppCenterEditorIcon.png.meta │ │ ├── Black.png │ │ ├── Black.png.meta │ │ ├── Clear.png │ │ ├── Clear.png.meta │ │ ├── Gray_base.png │ │ ├── Gray_base.png.meta │ │ ├── Gray_dk1.png │ │ ├── Gray_dk1.png.meta │ │ ├── Gray_lt1.png │ │ ├── Gray_lt1.png.meta │ │ ├── Gray_lt2.png │ │ ├── Gray_lt2.png.meta │ │ ├── Orange.png │ │ ├── Orange.png.meta │ │ ├── Square.png │ │ ├── Square.png.meta │ │ ├── White.png │ │ ├── White.png.meta │ │ ├── checkmark.png │ │ ├── checkmark.png.meta │ │ ├── checkmark_off.png │ │ ├── checkmark_off.png.meta │ │ ├── checkmark_on.png │ │ ├── checkmark_on.png.meta │ │ ├── dashboardIcon.png │ │ ├── dashboardIcon.png.meta │ │ ├── dashboardIconHover.png │ │ ├── dashboardIconHover.png.meta │ │ ├── dn_colored.png │ │ ├── dn_colored.png.meta │ │ ├── dn_gray.png │ │ ├── dn_gray.png.meta │ │ ├── green.png │ │ ├── green.png.meta │ │ ├── magenta.png │ │ ├── magenta.png.meta │ │ ├── r_colored.png │ │ ├── r_colored.png.meta │ │ ├── r_gray.png │ │ ├── r_gray.png.meta │ │ ├── red.png │ │ ├── red.png.meta │ │ ├── wheel.png │ │ ├── wheel.png.meta │ │ ├── yellow.png │ │ └── yellow.png.meta └── Packages │ └── manifest.json ├── UnityPackageSpecs └── AppCenterEditorExtensions.unitypackagespec ├── build.cake ├── build.ps1 ├── build.sh ├── cake.config ├── git-release.cake ├── test-cloud-execution-pipeline └── .github │ └── CODEOWNERS ├── tools ├── Addins │ ├── Cake.AzureStorage.0.14.0 │ │ ├── Cake.AzureStorage.0.14.0.nupkg │ │ ├── Cake.AzureStorage.nuspec │ │ └── lib │ │ │ └── net46 │ │ │ ├── Cake.AzureStorage.XML │ │ │ └── Cake.AzureStorage.dll │ ├── Cake.FileHelpers.3.1.0 │ │ ├── .signature.p7s │ │ ├── Cake.FileHelpers.3.1.0.nupkg │ │ ├── Cake.FileHelpers.nuspec │ │ └── lib │ │ │ ├── net46 │ │ │ ├── Cake.FileHelpers.dll │ │ │ └── Cake.FileHelpers.xml │ │ │ └── netstandard2.0 │ │ │ ├── Cake.FileHelpers.dll │ │ │ └── Cake.FileHelpers.xml │ └── NuGet.Core.2.14.0 │ │ ├── NuGet.Core.2.14.0.nupkg │ │ ├── NuGet.Core.nuspec │ │ └── lib │ │ └── net40-Client │ │ └── NuGet.Core.dll ├── Cake │ ├── .signature.p7s │ ├── Autofac.dll │ ├── Cake.Common.dll │ ├── Cake.Common.pdb │ ├── Cake.Common.xml │ ├── Cake.Core.dll │ ├── Cake.Core.pdb │ ├── Cake.Core.xml │ ├── Cake.NuGet.dll │ ├── Cake.NuGet.pdb │ ├── Cake.NuGet.xml │ ├── Cake.exe │ ├── Cake.exe.config │ ├── Cake.nupkg │ ├── Cake.pdb │ ├── Cake.xml │ ├── LICENSE │ ├── Microsoft.CodeAnalysis.CSharp.Scripting.dll │ ├── Microsoft.CodeAnalysis.CSharp.dll │ ├── Microsoft.CodeAnalysis.Scripting.dll │ ├── Microsoft.CodeAnalysis.dll │ ├── Microsoft.Web.XmlTransform.dll │ ├── Newtonsoft.Json.dll │ ├── NuGet.Commands.dll │ ├── NuGet.Common.dll │ ├── NuGet.Configuration.dll │ ├── NuGet.Credentials.dll │ ├── NuGet.DependencyResolver.Core.dll │ ├── NuGet.Frameworks.dll │ ├── NuGet.LibraryModel.dll │ ├── NuGet.PackageManagement.dll │ ├── NuGet.Packaging.Core.dll │ ├── NuGet.Packaging.dll │ ├── NuGet.ProjectModel.dll │ ├── NuGet.Protocol.dll │ ├── NuGet.Resolver.dll │ ├── NuGet.Versioning.dll │ ├── System.AppContext.dll │ ├── System.Collections.Immutable.dll │ ├── System.Console.dll │ ├── System.Diagnostics.FileVersionInfo.dll │ ├── System.Diagnostics.StackTrace.dll │ ├── System.IO.Compression.dll │ ├── System.IO.FileSystem.Primitives.dll │ ├── System.IO.FileSystem.dll │ ├── System.Reflection.Metadata.dll │ ├── System.Security.Cryptography.Algorithms.dll │ ├── System.Security.Cryptography.Encoding.dll │ ├── System.Security.Cryptography.Primitives.dll │ ├── System.Security.Cryptography.X509Certificates.dll │ ├── System.Text.Encoding.CodePages.dll │ ├── System.Threading.Thread.dll │ ├── System.ValueTuple.dll │ ├── System.Xml.ReaderWriter.dll │ ├── System.Xml.XPath.XDocument.dll │ ├── System.Xml.XPath.dll │ └── System.Xml.XmlDocument.dll ├── nuget.exe ├── packages.config └── packages.config.md5sum └── utility.cake /.gitignore: -------------------------------------------------------------------------------- 1 | *.unitypackage 2 | /Source/Assets/AppCenter/ 3 | /Source/Assets/AppCenter.meta 4 | /Source/Assets/PlayServicesResolver/ 5 | /Source/Assets/PlayServicesResolver.meta 6 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # App Center SDK for Unity Editor Extensions Change Log 2 | 3 | ## Release 3.0.0 4 | 5 | * **[Fix]** Fix version check date time value parsing. 6 | * **[Improvement]** Detect `AppCenterEditorExtensions` location automatically. 7 | 8 | ### App Center Push 9 | 10 | App Center Push has been removed from the SDK and will be [retired on December 31st, 2020](https://devblogs.microsoft.com/appcenter/migrating-off-app-center-push/). As an alternative to App Center Push, we recommend you migrate to [Azure Notification Hubs](https://docs.microsoft.com/en-us/azure/notification-hubs/notification-hubs-push-notification-overview) by following the [Push Migration Guide](https://docs.microsoft.com/en-us/appcenter/migration/push/). 11 | 12 | ___ 13 | 14 | ## Release 2.0.0 15 | 16 | * **[Breaking Change]** App Center Auth is [retired](https://aka.ms/MBaaS-retirement-blog-post) and has been removed from the SDK. Removed Auth package support. 17 | * **[Bug fix]** Fixed excessive amount of GitHub API calls. 18 | 19 | ___ 20 | 21 | ## Release 1.2.0 22 | 23 | * **[Feature]** App Center Unity SDK Auth package support 24 | 25 | ___ 26 | 27 | ## Release 1.1.2 28 | 29 | * **[Bug fix]** Fixed UI controls positioning and scrollbar behavior 30 | * **[Bug fix]** Fixed package update logic for some of the old App Center Unity SDK package versions 31 | 32 | ___ 33 | 34 | ## Release 1.1.1 35 | 36 | * **[Feature]** Added vertical scrollbar 37 | 38 | ___ 39 | 40 | ## Release 1.1.0 41 | 42 | * **[Feature]** App Center Unity SDK Push package support 43 | * Various bug fixes and improvements 44 | 45 | ___ 46 | 47 | ## Release 1.0.0 48 | 49 | * **[Feature]** You can now install and remove a specific SDK package instead of installing and removing all of them at once 50 | * Various bug fixes and improvements 51 | 52 | ___ 53 | 54 | ## Release 0.1.1 55 | 56 | Updated styles 57 | 58 | ___ 59 | 60 | ## Release 0.1.0 61 | 62 | Initial release 63 | -------------------------------------------------------------------------------- /Images/AppCenterSDKEditorExtension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Images/AppCenterSDKEditorExtension.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Visual Studio App Center SDK for Unity Editor Extensions 2 | 3 | Copyright (c) Microsoft Corporation 4 | 5 | All rights reserved. 6 | 7 | MIT License 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # App Center Unity Editor Extensions 2 | 3 | Welcome to the home of App Center Unity Editor Extension plugin, the best interface for viewing and configuring our App Center Unity SDK. 4 | We will be adding to this platform as App Center's Unity SDK features grow. 5 | 6 | ![App Center Editor Extension](Images/AppCenterSDKEditorExtension.png) 7 | 8 | ## Features: 9 | 10 | * **Automated SDK installation, upgrading & removal** - Now pain free! 11 | * **Easy to follow help links** - Link to *Release Notes* 12 | 13 | ## Setup: 14 | 15 | 1. Download [this Asset Package](https://github.com/Microsoft/AppCenter-SDK-Unity-Extension/releases "AppCenter-SDK-Unity-Extension.unitypackage") and import into a new or existing project. 16 | 2. Open the Editor Extensions via the Unity menu: **Window > App Center > Editor Extensions** 17 | 3. Editor Extensions will automatically detect if you have a App Center SDK installed. 18 | 19 | ## How it works: 20 | App Center Editor Extensions is a stand-alone Unity plug-in that streamlines getting started with App Center. All of the Editor Extensions code lives in editor folders within your Unity Project. This prevents any of the editor code from being compiled into the game build. 21 | 22 | ### Ongoing Development: 23 | Editor Extensions is an attempt to make a first class App Center development experience within the Unity Editor. We consider this project a sandbox and are always open to feedback from our community developers. 24 | 25 | ##### A word of caution: 26 | You may move our plugin folder around; however, we discourage renaming the root(*AppCenterEditorExtensions*) folder. This may cause the relative links within the plugin to break. 27 | 28 | 29 | ## Copyright and Licensing Information: 30 | 31 | Apache License -- Version 2.0, January 2004 [http://www.apache.org/licenses/](http://www.apache.org/licenses/) 32 | 33 | License Details available in [LICENSE.txt](https://github.com/Microsoft/AppCenter-SDK-Unity-Extension/blob/master/LICENSE "Apache 2.0 License") -------------------------------------------------------------------------------- /RELEASE.md: -------------------------------------------------------------------------------- 1 | ## Release 3.0.0 2 | 3 | * **[Fix]** Fix version check date time value parsing. 4 | * **[Improvement]** Detect `AppCenterEditorExtensions` location automatically. 5 | 6 | ### App Center Push 7 | 8 | App Center Push has been removed from the SDK and will be [retired on December 31st, 2020](https://devblogs.microsoft.com/appcenter/migrating-off-app-center-push/). As an alternative to App Center Push, we recommend you migrate to [Azure Notification Hubs](https://docs.microsoft.com/en-us/azure/notification-hubs/notification-hubs-push-notification-overview) by following the [Push Migration Guide](https://docs.microsoft.com/en-us/appcenter/migration/push/). 9 | 10 | ## Release 2.0.0 11 | 12 | * **[Breaking Change]** App Center Auth is [retired](https://aka.ms/MBaaS-retirement-blog-post) and has been removed from the SDK. Removed Auth package support. 13 | * **[Bug fix]** Fixed excessive amount of GitHub API calls. -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Security 4 | 5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). 6 | 7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. 8 | 9 | ## Reporting Security Issues 10 | 11 | **Please do not report security vulnerabilities through public GitHub issues.** 12 | 13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). 14 | 15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). 16 | 17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). 18 | 19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: 20 | 21 | * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) 22 | * Full paths of source file(s) related to the manifestation of the issue 23 | * The location of the affected source code (tag/branch/commit or direct URL) 24 | * Any special configuration required to reproduce the issue 25 | * Step-by-step instructions to reproduce the issue 26 | * Proof-of-concept or exploit code (if possible) 27 | * Impact of the issue, including how an attacker might exploit the issue 28 | 29 | This information will help us triage your report more quickly. 30 | 31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. 32 | 33 | ## Preferred Languages 34 | 35 | We prefer all communications to be in English. 36 | 37 | ## Policy 38 | 39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). 40 | 41 | 42 | -------------------------------------------------------------------------------- /Source/.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | [Bb]uild/ 5 | [Bb]uilds/ 6 | ProjectSettings/ 7 | Assets/AssetStoreTools* 8 | 9 | # Visual Studio cache directory 10 | .vs/ 11 | 12 | # Autogenerated VS/MD/Consulo solution and project files 13 | ExportedObj/ 14 | .consulo/ 15 | *.csproj 16 | *.unityproj 17 | *.sln 18 | *.suo 19 | *.tmp 20 | *.user 21 | *.userprefs 22 | *.pidb 23 | *.booproj 24 | *.svd 25 | *.pdb 26 | *.opendb 27 | 28 | # Unity3D generated meta files 29 | *.pidb.meta 30 | *.pdb.meta 31 | 32 | # Unity3D Generated File On Crash Reports 33 | sysinfo.txt 34 | 35 | # Builds 36 | *.apk -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c0f1ea465a3e4ecfa1b00ca7c561e4e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eaa170c0e76514efb9730ada5c2f86d9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/AppCenterEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b14017bd1faea40b6a39537f07d6a00b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4bc77e43c99f49918d2158e6d8434ca 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Resources/AppCenterEditorPrefsSO.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: cbb9dcf2e78804b9384db79873454e2f, type: 3} 12 | m_Name: AppCenterEditorPrefsSO 13 | m_EditorClassIdentifier: 14 | SdkPath: 15 | EdExPath: 16 | PanelIsShown: 0 17 | curMainMenuIdx: 0 18 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Resources/AppCenterEditorPrefsSO.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6778fb10ccf0e4a0dab77ba0a27a74f5 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2af280239726e24b9781b1e67c7f0ae 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c9afa19d13e148fe93230b0075ee4e3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/AppCenterEditorHttp.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.IO; 5 | using System.Linq; 6 | using UnityEditor; 7 | using UnityEngine.Networking; 8 | 9 | namespace AppCenterEditor 10 | { 11 | public class AppCenterEditorHttp : Editor 12 | { 13 | internal static void MakeDownloadCall(string url, Action resultCallback) 14 | { 15 | EdExLogger.LoggerInstance.LogWithTimeStamp("Downloading file: " + url); 16 | var www = UnityWebRequest.Get(url); 17 | AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnHttpReq, url, AppCenterEditorHelper.MSG_SPIN_BLOCK); 18 | Coroutiner.StartCoroutine(PostDownload(www, response => 19 | { 20 | resultCallback(WriteResultFile(url, response)); 21 | }, AppCenterEditorHelper.SharedErrorCallback)); 22 | } 23 | 24 | internal static void MakeDownloadCall(IEnumerable urls, Action> resultCallback) 25 | { 26 | EdExLogger.LoggerInstance.LogWithTimeStamp("Downloading files: " + string.Join(", ", urls.ToArray())); 27 | var wwws = new List(); 28 | var downloadRequests = new List(); 29 | foreach (var url in urls) 30 | { 31 | var www = UnityWebRequest.Get(url); 32 | wwws.Add(www); 33 | downloadRequests.Add(new DownloadRequest(url, www)); 34 | } 35 | AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnHttpReq, "Downloading files", AppCenterEditorHelper.MSG_SPIN_BLOCK); 36 | Coroutiner.StartCoroutine(DownloadFiles(downloadRequests, resultCallback, AppCenterEditorHelper.SharedErrorCallback)); 37 | } 38 | 39 | internal static void MakeGitHubApiCall(string url, Action resultCallback) 40 | { 41 | var www = UnityWebRequest.Get(url); 42 | Coroutiner.StartCoroutine(Post(www, response => { OnGitHubSuccess(resultCallback, response); }, AppCenterEditorHelper.SharedErrorCallback)); 43 | } 44 | 45 | private static IEnumerator Post(UnityWebRequest www, Action callBack, Action errorCallback) 46 | { 47 | yield return www.SendWebRequest(); 48 | if (!string.IsNullOrEmpty(www.error)) 49 | { 50 | errorCallback(www.error); 51 | } 52 | else 53 | { 54 | callBack(www.downloadHandler.text); 55 | } 56 | } 57 | 58 | private static IEnumerator PostDownload(UnityWebRequest www, Action callBack, Action errorCallback) 59 | { 60 | yield return www.SendWebRequest(); 61 | if (!string.IsNullOrEmpty(www.error)) 62 | { 63 | errorCallback(www.error); 64 | } 65 | else 66 | { 67 | callBack(www.downloadHandler.data); 68 | } 69 | } 70 | 71 | private static IEnumerator DownloadFiles(IEnumerable downloadRequests, Action> resultCallback, Action errorCallback) 72 | { 73 | var downloadedFiles = new List(); 74 | foreach (var downloadRequest in downloadRequests) 75 | { 76 | yield return downloadRequest.WWW.SendWebRequest(); 77 | 78 | #if UNITY_2020_2_OR_NEWER 79 | if (downloadRequest.WWW.result != UnityWebRequest.Result.ProtocolError 80 | && downloadRequest.WWW.result != UnityWebRequest.Result.ConnectionError) 81 | #else 82 | if (!downloadRequest.WWW.isHttpError && !downloadRequest.WWW.isNetworkError) 83 | #endif 84 | { 85 | var downloadedFile = WriteResultFile(downloadRequest.Url, downloadRequest.WWW.downloadHandler.data); 86 | downloadedFiles.Add(downloadedFile); 87 | } 88 | else 89 | { 90 | errorCallback(downloadRequest.WWW.error); 91 | yield break; 92 | } 93 | } 94 | resultCallback(downloadedFiles); 95 | } 96 | 97 | private static void OnGitHubSuccess(Action resultCallback, string response) 98 | { 99 | if (resultCallback == null) 100 | { 101 | return; 102 | } 103 | var jsonResponse = JsonWrapper.DeserializeObject>(response); 104 | if (jsonResponse == null || jsonResponse.Count == 0) 105 | { 106 | return; 107 | } 108 | // list seems to come back in ascending order (oldest -> newest) 109 | var latestSdkTag = (JsonObject)jsonResponse[jsonResponse.Count - 1]; 110 | object tag; 111 | if (latestSdkTag.TryGetValue("ref", out tag)) 112 | { 113 | var startIndex = tag.ToString().LastIndexOf('/') + 1; 114 | var length = tag.ToString().Length - startIndex; 115 | resultCallback(tag.ToString().Substring(startIndex, length)); 116 | } 117 | else 118 | { 119 | resultCallback(null); 120 | } 121 | } 122 | 123 | private static string WriteResultFile(string url, byte[] response) 124 | { 125 | AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnHttpRes, url); 126 | string fileName; 127 | if (url.IndexOf("AppCenterEditorExtensions-v") > -1) 128 | { 129 | fileName = AppCenterEditorHelper.EDEX_UPGRADE_PATH; 130 | } 131 | else if (url.IndexOf("AppCenterAnalytics-v") > -1) 132 | { 133 | fileName = AppCenterEditorHelper.ANALYTICS_SDK_DOWNLOAD_PATH; 134 | } 135 | else if (url.IndexOf("AppCenterCrashes-v") > -1) 136 | { 137 | fileName = AppCenterEditorHelper.CRASHES_SDK_DOWNLOAD_PATH; 138 | } 139 | else if (url.IndexOf("AppCenterDistribute-v") > -1) 140 | { 141 | fileName = AppCenterEditorHelper.DISTRIBUTE_SDK_DOWNLOAD_PATH; 142 | } 143 | else 144 | { 145 | fileName = AppCenterEditorHelper.EDEX_PACKAGES_PATH; 146 | } 147 | var fileSaveLocation = AppCenterEditorHelper.EDEX_ROOT + fileName; 148 | var fileSaveDirectory = Path.GetDirectoryName(fileSaveLocation); 149 | EdExLogger.LoggerInstance.LogWithTimeStamp("Saving " + response.Length + " bytes to: " + fileSaveLocation); 150 | if (!Directory.Exists(fileSaveDirectory)) 151 | { 152 | Directory.CreateDirectory(fileSaveDirectory); 153 | } 154 | File.WriteAllBytes(fileSaveLocation, response); 155 | return fileSaveLocation; 156 | } 157 | 158 | private class DownloadRequest 159 | { 160 | public string Url { get; private set; } 161 | public UnityWebRequest WWW { get; private set; } 162 | 163 | public DownloadRequest(string url, UnityWebRequest www) 164 | { 165 | Url = url; 166 | WWW = www; 167 | } 168 | } 169 | } 170 | } 171 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/AppCenterEditorHttp.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0adb37d42167d491e872d983c8736732 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/Constants.cs: -------------------------------------------------------------------------------- 1 | namespace AppCenterEditor 2 | { 3 | public class Constants 4 | { 5 | public const string UnknownVersion = "Unknown"; 6 | public const string WrapperSdkClassName = "Microsoft.AppCenter.Unity.WrapperSdk"; 7 | public const string WrapperSdkVersionFieldName = "WrapperSdkVersion"; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/Constants.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9834441b45590434291881207fa97dd9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/ISerializer.cs: -------------------------------------------------------------------------------- 1 | namespace AppCenterEditor 2 | { 3 | public interface ISerializer 4 | { 5 | T DeserializeObject(string json); 6 | T DeserializeObject(string json, object jsonSerializerStrategy); 7 | object DeserializeObject(string json); 8 | 9 | string SerializeObject(object json); 10 | string SerializeObject(object json, object jsonSerializerStrategy); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/ISerializer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 573b77bd61fac61499edeaadad015476 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/JsonWrapper.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace AppCenterEditor 6 | { 7 | public class JsonWrapper 8 | { 9 | private static ISerializer _instance = new SimpleJsonInstance(); 10 | 11 | /// 12 | /// Use this property to override the Serialization for the SDK. 13 | /// 14 | public static ISerializer Instance 15 | { 16 | get { return _instance; } 17 | set { _instance = value; } 18 | } 19 | 20 | public static T DeserializeObject(string json) 21 | { 22 | return _instance.DeserializeObject(json); 23 | } 24 | 25 | public static T DeserializeObject(string json, object jsonSerializerStrategy) 26 | { 27 | return _instance.DeserializeObject(json, jsonSerializerStrategy); 28 | } 29 | 30 | public static object DeserializeObject(string json) 31 | { 32 | return _instance.DeserializeObject(json); 33 | } 34 | 35 | public static string SerializeObject(object json) 36 | { 37 | return _instance.SerializeObject(json); 38 | } 39 | 40 | public static string SerializeObject(object json, object jsonSerializerStrategy) 41 | { 42 | return _instance.SerializeObject(json, jsonSerializerStrategy); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/JsonWrapper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92da912d9a571464e90d2d08c293f5ea 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/PackagesInstaller.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | 5 | namespace AppCenterEditor 6 | { 7 | public static class PackagesInstaller 8 | { 9 | public static void ImportLatestSDK(IEnumerable packagesToImport, string version, string existingSdkPath = null) 10 | { 11 | try 12 | { 13 | var downloadUrls = new List(); 14 | foreach (var package in packagesToImport) 15 | { 16 | downloadUrls.Add(package.GetDownloadUrl(version)); 17 | } 18 | AppCenterEditorHttp.MakeDownloadCall(downloadUrls, downloadedFiles => 19 | { 20 | try 21 | { 22 | foreach (var file in downloadedFiles) 23 | { 24 | EdExLogger.LoggerInstance.LogWithTimeStamp("Importing package: " + file); 25 | AssetDatabase.ImportPackage(file, false); 26 | EdExLogger.LoggerInstance.LogWithTimeStamp("Deleting file: " + file); 27 | FileUtil.DeleteFileOrDirectory(file); 28 | } 29 | AppCenterEditorPrefsSO.Instance.SdkPath = string.IsNullOrEmpty(existingSdkPath) ? AppCenterEditorHelper.DEFAULT_SDK_LOCATION : existingSdkPath; 30 | //AppCenterEditorDataService.SaveEnvDetails(); 31 | EdExLogger.LoggerInstance.LogWithTimeStamp("App Center SDK install complete"); 32 | } 33 | catch (Exception exception) 34 | { 35 | EdExLogger.LoggerInstance.LogError("Failed to import packages: " + exception); 36 | } 37 | finally 38 | { 39 | AppCenterEditorSDKTools.IsInstalling = false; 40 | } 41 | }); 42 | } 43 | catch 44 | { 45 | AppCenterEditorSDKTools.IsInstalling = false; 46 | throw; 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/PackagesInstaller.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49ddc3aac61e4af42bf36700ad5ccb45 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/SimpleJson.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8bfd769747cb35a4ca40e4e9debf31c0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/SimpleJsonInstance.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace AppCenterEditor 6 | { 7 | public class SimpleJsonInstance : ISerializer 8 | { 9 | public T DeserializeObject(string json) 10 | { 11 | return AppCenterSimpleJson.DeserializeObject(json); 12 | } 13 | 14 | public T DeserializeObject(string json, object jsonSerializerStrategy) 15 | { 16 | return AppCenterSimpleJson.DeserializeObject(json, (IJsonSerializerStrategy)jsonSerializerStrategy); 17 | } 18 | 19 | public object DeserializeObject(string json) 20 | { 21 | return AppCenterSimpleJson.DeserializeObject(json); 22 | } 23 | 24 | public string SerializeObject(object json) 25 | { 26 | return AppCenterSimpleJson.SerializeObject(json); 27 | } 28 | 29 | public string SerializeObject(object json, object jsonSerializerStrategy) 30 | { 31 | return AppCenterSimpleJson.SerializeObject(json, (IJsonSerializerStrategy)jsonSerializerStrategy); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/AppCenterEditorSDK/SimpleJsonInstance.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 260fd54878fe79d42b8e3100b4bf98db 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Components.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4088971449f54227a925f6a05fb09a9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Components/DrawUtils.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System; 3 | 4 | public class DrawUtils { 5 | 6 | private static Color32[] rotateSquare(Color32[] arr, double phi, Texture2D originTexture) 7 | { 8 | int x; 9 | int y; 10 | int i; 11 | int j; 12 | double sn = Math.Sin(phi); 13 | double cs = Math.Cos(phi); 14 | Color32[] arr2 = originTexture.GetPixels32(); 15 | int W = originTexture.width; 16 | int H = originTexture.height; 17 | int xc = W / 2; 18 | int yc = H / 2; 19 | for (j = 0; j < H; j++) 20 | { 21 | for (i = 0; i < W; i++) 22 | { 23 | arr2[j * W + i] = new Color32(0, 0, 0, 0); 24 | x = (int)(cs * (i - xc) + sn * (j - yc) + xc); 25 | y = (int)(-sn * (i - xc) + cs * (j - yc) + yc); 26 | if ((x > -1) && (x < W) && (y > -1) && (y < H)) 27 | { 28 | arr2[j * W + i] = arr[y * W + x]; 29 | } 30 | } 31 | } 32 | return arr2; 33 | } 34 | 35 | public static Texture2D RotateImage(Texture2D originTexture, int angle) 36 | { 37 | Texture2D result; 38 | result = new Texture2D(originTexture.width, originTexture.height); 39 | Color32[] pix1 = result.GetPixels32(); 40 | Color32[] pix2 = originTexture.GetPixels32(); 41 | int W = originTexture.width; 42 | int H = originTexture.height; 43 | int x = 0; 44 | int y = 0; 45 | Color32[] pix3 = rotateSquare(pix2, (Math.PI / 180 * (double)angle), originTexture); 46 | for (int j = 0; j < H; j++) 47 | { 48 | for (var i = 0; i < W; i++) 49 | { 50 | pix1[result.width / 2 - W / 2 + x + i + result.width * (result.height / 2 - H / 2 + j + y)] = pix3[i + j * W]; 51 | } 52 | } 53 | result.SetPixels32(pix1); 54 | result.Apply(); 55 | return result; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Components/DrawUtils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2db30e5e160bb48358ce517ac9f8eea8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Components/ProgressBar.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | 4 | namespace AppCenterEditor 5 | { 6 | public class ProgressBar 7 | { 8 | public enum ProgressBarStates { off = 0, on = 1, spin = 2, error = 3, warning = 4, success = 5 } 9 | public static ProgressBarStates currentProgressBarState = ProgressBarStates.off; 10 | 11 | public static float progress = 0; 12 | private static GUIStyle pbarStyle = AppCenterEditorHelper.uiStyle.GetStyle("progressBarFg"); 13 | private static GUIStyle pbarBgStyle = AppCenterEditorHelper.uiStyle.GetStyle("progressBarBg"); 14 | 15 | private static float progressWidth = 0; 16 | private static float animationSpeed = 1f; 17 | private static float tickRate = .15f; 18 | private static float stTime; 19 | private static float endTime; 20 | private static float lastUpdateTime; 21 | private static bool isReveresed; 22 | 23 | public static void UpdateState(ProgressBarStates state) 24 | { 25 | if (currentProgressBarState == ProgressBarStates.off && state != ProgressBarStates.off) 26 | { 27 | stTime = (float)EditorApplication.timeSinceStartup; 28 | endTime = stTime + animationSpeed; 29 | } 30 | 31 | currentProgressBarState = state; 32 | } 33 | 34 | //not a good way to do this right now. 35 | public static void UpdateProgress(float p) 36 | { 37 | progress = p; 38 | } 39 | 40 | public static void Draw() 41 | { 42 | var progressMaxWidth = AppCenterEditor.InnerContainerWidth; 43 | 44 | pbarBgStyle = AppCenterEditorHelper.uiStyle.GetStyle("progressBarBg"); 45 | if (currentProgressBarState == ProgressBarStates.off) 46 | { 47 | stTime = 0; 48 | endTime = 0; 49 | progressWidth = 0; 50 | lastUpdateTime = 0; 51 | isReveresed = false; 52 | 53 | progressWidth = progressMaxWidth; 54 | pbarStyle = AppCenterEditorHelper.uiStyle.GetStyle("progressBarClear"); 55 | pbarBgStyle = AppCenterEditorHelper.uiStyle.GetStyle("progressBarClear"); 56 | //return; 57 | } 58 | else if (EditorWindow.focusedWindow != AppCenterEditor.window) 59 | { 60 | // pause draw while we are in the bg 61 | return; 62 | } 63 | else if (currentProgressBarState == ProgressBarStates.success) 64 | { 65 | if ((float)EditorApplication.timeSinceStartup - stTime < animationSpeed) 66 | { 67 | progressWidth = progressMaxWidth; 68 | pbarStyle = AppCenterEditorHelper.uiStyle.GetStyle("progressBarSuccess"); 69 | } 70 | else if (AppCenterEditor.blockingRequests.Count > 0) 71 | { 72 | UpdateState(ProgressBarStates.spin); 73 | } 74 | else 75 | { 76 | UpdateState(ProgressBarStates.off); 77 | } 78 | } 79 | else if (currentProgressBarState == ProgressBarStates.warning) 80 | { 81 | if ((float)EditorApplication.timeSinceStartup - stTime < animationSpeed) 82 | { 83 | progressWidth = progressMaxWidth; 84 | pbarStyle = AppCenterEditorHelper.uiStyle.GetStyle("progressBarWarn"); 85 | } 86 | else if (AppCenterEditor.blockingRequests.Count > 0) 87 | { 88 | UpdateState(ProgressBarStates.spin); 89 | } 90 | else 91 | { 92 | UpdateState(ProgressBarStates.off); 93 | } 94 | } 95 | else if (currentProgressBarState == ProgressBarStates.error) 96 | { 97 | if ((float)EditorApplication.timeSinceStartup - stTime < animationSpeed) 98 | { 99 | progressWidth = progressMaxWidth; 100 | pbarStyle = AppCenterEditorHelper.uiStyle.GetStyle("progressBarError"); 101 | } 102 | else if (AppCenterEditor.blockingRequests.Count > 0) 103 | { 104 | UpdateState(ProgressBarStates.spin); 105 | } 106 | else 107 | { 108 | UpdateState(ProgressBarStates.off); 109 | } 110 | } 111 | else 112 | { 113 | 114 | if ((float)EditorApplication.timeSinceStartup - lastUpdateTime > tickRate) 115 | { 116 | lastUpdateTime = (float)EditorApplication.timeSinceStartup; 117 | pbarStyle = AppCenterEditorHelper.uiStyle.GetStyle("progressBarFg"); 118 | 119 | if (currentProgressBarState == ProgressBarStates.on) 120 | { 121 | progressWidth = progressMaxWidth * progress; 122 | } 123 | else if (currentProgressBarState == ProgressBarStates.spin) 124 | { 125 | var currentTime = (float)EditorApplication.timeSinceStartup; 126 | if (currentTime < endTime && !isReveresed) 127 | { 128 | UpdateProgress((currentTime - stTime) / animationSpeed); 129 | progressWidth = progressMaxWidth * progress; 130 | } 131 | else if (currentTime < endTime && isReveresed) 132 | { 133 | UpdateProgress((currentTime - stTime) / animationSpeed); 134 | progressWidth = progressMaxWidth - progressMaxWidth * progress; 135 | } 136 | else 137 | { 138 | isReveresed = !isReveresed; 139 | stTime = (float)EditorApplication.timeSinceStartup; 140 | endTime = stTime + animationSpeed; 141 | } 142 | } 143 | } 144 | 145 | } 146 | 147 | using (new AppCenterGuiFieldHelper.UnityHorizontal(pbarBgStyle)) 148 | { 149 | if (isReveresed) 150 | { 151 | GUILayout.FlexibleSpace(); 152 | } 153 | EditorGUILayout.LabelField("", pbarStyle, GUILayout.Width(progressWidth)); 154 | } 155 | } 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Components/ProgressBar.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eea75b0d7b5ef4c108f3f7d94c1db778 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c0a0aac543bfd421c90c069618185d46 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/AppCenterEditorHeader.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | namespace AppCenterEditor 5 | { 6 | public class AppCenterEditorHeader : Editor 7 | { 8 | public static void DrawHeader(float progress = 0f) 9 | { 10 | if (AppCenterEditorHelper.uiStyle == null) 11 | return; 12 | using (new AppCenterGuiFieldHelper.UnityHorizontal(AppCenterEditorHelper.uiStyle.GetStyle("gpStyleHeaderWrapper"))) 13 | { 14 | //using Begin Vertical as our container. 15 | using (new AppCenterGuiFieldHelper.UnityHorizontal(GUILayout.Height(52))) 16 | { 17 | EditorGUILayout.LabelField("", AppCenterEditorHelper.uiStyle.GetStyle("acLogo"), GUILayout.MaxHeight(60), GUILayout.Width(60)); 18 | EditorGUILayout.LabelField("App Center", AppCenterEditorHelper.uiStyle.GetStyle("gpStyleGray2"), GUILayout.MinHeight(52)); 19 | 20 | //end the vertical container 21 | } 22 | } 23 | 24 | ProgressBar.Draw(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/AppCenterEditorHeader.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 82fe5ebbfbd6e4aa980585a4c5aeb0f0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/AppCenterEditorMenu.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEditor; 3 | 4 | namespace AppCenterEditor 5 | { 6 | public class AppCenterEditorMenu : Editor 7 | { 8 | #region panel variables 9 | internal enum MenuStates 10 | { 11 | Sdks = 0, 12 | } 13 | 14 | internal static MenuStates _menuState = MenuStates.Sdks; 15 | #endregion 16 | 17 | public static void DrawMenu() 18 | { 19 | if (AppCenterEditorSDKTools.IsInstalled) 20 | _menuState = (MenuStates)AppCenterEditorPrefsSO.Instance.curMainMenuIdx; 21 | 22 | var sdksButtonStyle = AppCenterEditorHelper.uiStyle.GetStyle("textButton"); 23 | 24 | 25 | if (_menuState == MenuStates.Sdks) 26 | sdksButtonStyle = AppCenterEditorHelper.uiStyle.GetStyle("textButton_selected"); 27 | 28 | using (new AppCenterGuiFieldHelper.UnityHorizontal(AppCenterEditorHelper.uiStyle.GetStyle("gpStyleGray1"), GUILayout.Height(25), GUILayout.ExpandWidth(true))) 29 | { 30 | GUILayout.Space(5); 31 | 32 | if (GUILayout.Button("SDK", sdksButtonStyle, GUILayout.MaxWidth(35))) 33 | { 34 | 35 | } 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/AppCenterEditorMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 094bc528ca3754d17bfe99514da8eef3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/AppCenterEditorSDKTools.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b57d3ec8e3cf4c8c8ba6d8d595cd6c1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/SDKPackage.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d64a1476e9a21a42b7cac2baafca9d4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/SDKPackage/AppCenterAnalyticsPackage.cs: -------------------------------------------------------------------------------- 1 | namespace AppCenterEditor 2 | { 3 | public class AppCenterAnalyticsPackage : AppCenterSDKPackage 4 | { 5 | private const string AnalyticsLatestDownload = "https://mobilecentersdkdev.blob.core.windows.net/sdk/AppCenterAnalyticsLatest.unitypackage"; 6 | private const string AnalyticsDownloadFormat = "https://github.com/Microsoft/AppCenter-SDK-Unity/releases/download/{0}/AppCenterAnalytics-v{0}.unitypackage"; 7 | 8 | public static AppCenterAnalyticsPackage Instance = new AppCenterAnalyticsPackage(); 9 | 10 | public override string Name { get { return "Analytics"; } } 11 | 12 | protected override bool IsSupportedForWSA { get { return true; } } 13 | 14 | public override string TypeName { get { return "Microsoft.AppCenter.Unity.Analytics.Analytics"; } } 15 | 16 | public override string VersionFieldName { get { return "AnalyticsSDKVersion"; } } 17 | 18 | public override string DownloadLatestUrl { get { return AnalyticsLatestDownload; } } 19 | 20 | public override string DownloadUrlFormat { get { return AnalyticsDownloadFormat; } } 21 | 22 | protected override bool IsSdkPackageSupported() 23 | { 24 | return true; 25 | } 26 | 27 | private AppCenterAnalyticsPackage() 28 | { 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/SDKPackage/AppCenterAnalyticsPackage.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 564bbf408bc68c04fa37ddf06c3a47de 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/SDKPackage/AppCenterCrashesPackage.cs: -------------------------------------------------------------------------------- 1 | namespace AppCenterEditor 2 | { 3 | public class AppCenterCrashesPackage : AppCenterSDKPackage 4 | { 5 | private const string CrashesLatestDownload = "https://mobilecentersdkdev.blob.core.windows.net/sdk/AppCenterCrashesLatest.unitypackage"; 6 | private const string CrashesDownloadFormat = "https://github.com/Microsoft/AppCenter-SDK-Unity/releases/download/{0}/AppCenterCrashes-v{0}.unitypackage"; 7 | 8 | public static AppCenterCrashesPackage Instance = new AppCenterCrashesPackage(); 9 | 10 | public override string Name { get { return "Crashes"; } } 11 | 12 | protected override bool IsSupportedForWSA { get { return false; } } 13 | 14 | public override string TypeName { get { return "Microsoft.AppCenter.Unity.Crashes.Crashes"; } } 15 | 16 | public override string VersionFieldName { get { return "CrashesSDKVersion"; } } 17 | 18 | public override string DownloadLatestUrl { get { return CrashesLatestDownload; } } 19 | 20 | public override string DownloadUrlFormat { get { return CrashesDownloadFormat; } } 21 | 22 | protected override bool IsSdkPackageSupported() 23 | { 24 | return true; 25 | } 26 | 27 | private AppCenterCrashesPackage() 28 | { 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/SDKPackage/AppCenterCrashesPackage.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2adc8c1aa0190947ae545aac1d99de0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/SDKPackage/AppCenterDistributePackage.cs: -------------------------------------------------------------------------------- 1 | namespace AppCenterEditor 2 | { 3 | public class AppCenterDistributePackage : AppCenterSDKPackage 4 | { 5 | private const string DistributeLatestDownload = "https://mobilecentersdkdev.blob.core.windows.net/sdk/AppCenterDistributeLatest.unitypackage"; 6 | private const string DistributeDownloadFormat = "https://github.com/Microsoft/AppCenter-SDK-Unity/releases/download/{0}/AppCenterDistribute-v{0}.unitypackage"; 7 | 8 | public static AppCenterDistributePackage Instance = new AppCenterDistributePackage(); 9 | 10 | public override string TypeName { get { return "Microsoft.AppCenter.Unity.Distribute.Distribute"; } } 11 | 12 | public override string VersionFieldName { get { return "DistributeSDKVersion"; } } 13 | 14 | public override string Name { get { return "Distribute"; } } 15 | 16 | protected override bool IsSupportedForWSA { get { return false; } } 17 | 18 | public override string DownloadLatestUrl { get { return DistributeLatestDownload; } } 19 | 20 | public override string DownloadUrlFormat { get { return DistributeDownloadFormat; } } 21 | 22 | protected override bool IsSdkPackageSupported() 23 | { 24 | return true; 25 | } 26 | 27 | private AppCenterDistributePackage() 28 | { 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/SDKPackage/AppCenterDistributePackage.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a4c7d12311fbe6c4dbdc48c7f0c955d2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/SDKPackage/AppCenterSDKPackage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | using UnityEngine; 5 | using System.IO; 6 | 7 | namespace AppCenterEditor 8 | { 9 | public abstract class AppCenterSDKPackage 10 | { 11 | private static int angle = 0; 12 | 13 | public static IEnumerable SupportedPackages = new AppCenterSDKPackage[] 14 | { 15 | AppCenterAnalyticsPackage.Instance, 16 | AppCenterCrashesPackage.Instance, 17 | AppCenterDistributePackage.Instance, 18 | }; 19 | 20 | public string InstalledVersion { get; private set; } 21 | public bool IsInstalled { get; set; } 22 | public bool IsPackageInstalling { get; set; } 23 | public bool IsObjectFieldActive { get; set; } 24 | protected abstract bool IsSupportedForWSA { get; } 25 | public abstract string Name { get; } 26 | public abstract string DownloadLatestUrl { get; } 27 | public abstract string DownloadUrlFormat { get; } 28 | public abstract string TypeName { get; } 29 | public abstract string VersionFieldName { get; } 30 | protected abstract bool IsSdkPackageSupported(); 31 | 32 | public static IEnumerable GetInstalledPackages() 33 | { 34 | var installedPackages = new List(); 35 | foreach (var package in SupportedPackages) 36 | { 37 | if (package.IsInstalled) 38 | { 39 | installedPackages.Add(package); 40 | } 41 | } 42 | return installedPackages; 43 | } 44 | 45 | private void RemovePackage(bool prompt = true) 46 | { 47 | if (prompt && !EditorUtility.DisplayDialog("Confirm SDK Removal", string.Format("This action will remove the current {0} SDK.", Name), "Confirm", "Cancel")) 48 | { 49 | return; 50 | } 51 | EdExLogger.LoggerInstance.LogWithTimeStamp(string.Format("Removing {0} package...", Name)); 52 | 53 | var toDelete = new List(); 54 | string pluginsPath = Path.Combine(AppCenterEditorPrefsSO.Instance.SdkPath, "Plugins"); 55 | string androidPath = Path.Combine(pluginsPath, "Android"); 56 | string sdkPath = Path.Combine(pluginsPath, "AppCenterSDK"); 57 | string iosPath = Path.Combine(pluginsPath, "iOS"); 58 | string wsaPath = Path.Combine(pluginsPath, "WSA"); 59 | toDelete.Add(Path.Combine(androidPath, string.Format("appcenter-{0}-release.aar", Name.ToLower()))); 60 | toDelete.AddRange(Directory.GetFiles(Path.Combine(sdkPath, Name))); 61 | toDelete.AddRange(Directory.GetDirectories(Path.Combine(sdkPath, Name))); 62 | toDelete.Add(Path.Combine(sdkPath, Name)); 63 | toDelete.AddRange(Directory.GetFiles(Path.Combine(iosPath, Name))); 64 | toDelete.AddRange(Directory.GetDirectories(Path.Combine(iosPath, Name))); 65 | toDelete.Add(Path.Combine(iosPath, Name)); 66 | if (IsSupportedForWSA) 67 | { 68 | toDelete.AddRange(Directory.GetFiles(Path.Combine(wsaPath, Name))); 69 | toDelete.AddRange(Directory.GetDirectories(Path.Combine(wsaPath, Name))); 70 | toDelete.Add(Path.Combine(wsaPath, Name)); 71 | } 72 | 73 | bool deleted = true; 74 | 75 | foreach (var path in toDelete) 76 | { 77 | if (!FileUtil.DeleteFileOrDirectory(path)) 78 | { 79 | if (!path.EndsWith("meta")) 80 | { 81 | deleted = false; 82 | } 83 | } 84 | FileUtil.DeleteFileOrDirectory(path + ".meta"); 85 | } 86 | 87 | // Remove Core if no packages left. 88 | List installedPackages = new List(); 89 | installedPackages.AddRange(GetInstalledPackages()); 90 | if (installedPackages.Count <= 1) 91 | { 92 | AppCenterEditorSDKTools.RemoveSdk(false); 93 | } 94 | 95 | if (deleted) 96 | { 97 | EdExLogger.LoggerInstance.LogWithTimeStamp(string.Format("{0} package removed.", Name)); 98 | AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnSuccess, string.Format("App Center {0} SDK removed.", Name)); 99 | 100 | // HACK for 5.4, AssetDatabase.Refresh(); seems to cause the install to fail. 101 | if (prompt) 102 | { 103 | AssetDatabase.Refresh(); 104 | } 105 | } 106 | else 107 | { 108 | AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnError, string.Format("An unknown error occured and the {0} SDK could not be removed.", Name)); 109 | } 110 | } 111 | 112 | public void ShowPackageInstalledMenu() 113 | { 114 | var isPackageSupported = IsSdkPackageSupported(); 115 | 116 | using (new AppCenterGuiFieldHelper.UnityVertical(AppCenterEditorHelper.uiStyle.GetStyle("gpStyleEmpty"))) 117 | { 118 | var sdkPackageVersion = InstalledVersion; 119 | using (new AppCenterGuiFieldHelper.UnityHorizontal(AppCenterEditorHelper.uiStyle.GetStyle("gpStyleEmpty"))) 120 | { 121 | GUILayout.FlexibleSpace(); 122 | var labelStyle = new GUIStyle(AppCenterEditorHelper.uiStyle.GetStyle("versionText")); 123 | EditorGUILayout.LabelField(string.Format("{0} SDK {1} is installed", Name, sdkPackageVersion), labelStyle); 124 | GUILayout.FlexibleSpace(); 125 | } 126 | 127 | bool packageVersionIsValid = sdkPackageVersion != null && sdkPackageVersion != Constants.UnknownVersion; 128 | if (packageVersionIsValid && sdkPackageVersion.CompareTo(AppCenterEditorSDKTools.InstalledSdkVersion) != 0) 129 | { 130 | using (new AppCenterGuiFieldHelper.UnityHorizontal(AppCenterEditorHelper.uiStyle.GetStyle("gpStyleEmpty"))) 131 | { 132 | GUILayout.FlexibleSpace(); 133 | EditorGUILayout.LabelField("Warning! Package version is not equal to the AppCenter Core SDK version. ", AppCenterEditorHelper.uiStyle.GetStyle("orTxt")); 134 | GUILayout.FlexibleSpace(); 135 | } 136 | } 137 | 138 | if (isPackageSupported && AppCenterEditorSDKTools.SdkFolder != null) 139 | { 140 | using (new AppCenterGuiFieldHelper.UnityHorizontal(AppCenterEditorHelper.uiStyle.GetStyle("gpStyleEmpty"))) 141 | { 142 | GUILayout.FlexibleSpace(); 143 | 144 | if (GUILayout.Button("Remove SDK", AppCenterEditorHelper.uiStyle.GetStyle("textButton"))) 145 | { 146 | RemovePackage(); 147 | } 148 | 149 | GUILayout.FlexibleSpace(); 150 | } 151 | } 152 | } 153 | } 154 | 155 | public void ShowPackageNotInstalledMenu() 156 | { 157 | using (new AppCenterGuiFieldHelper.UnityVertical(AppCenterEditorHelper.uiStyle.GetStyle("gpStyleEmpty"))) 158 | { 159 | using (new AppCenterGuiFieldHelper.UnityHorizontal(AppCenterEditorHelper.uiStyle.GetStyle("gpStyleEmpty"))) 160 | { 161 | GUILayout.FlexibleSpace(); 162 | var labelStyle = new GUIStyle(AppCenterEditorHelper.uiStyle.GetStyle("versionText")); 163 | EditorGUILayout.LabelField(string.Format("{0} SDK is not installed.", Name), labelStyle); 164 | GUILayout.FlexibleSpace(); 165 | } 166 | 167 | using (new AppCenterGuiFieldHelper.UnityHorizontal(AppCenterEditorHelper.uiStyle.GetStyle("gpStyleEmpty"))) 168 | { 169 | GUILayout.FlexibleSpace(); 170 | if (IsPackageInstalling) 171 | { 172 | var image = DrawUtils.RotateImage(AssetDatabase.LoadAssetAtPath("Assets/AppCenterEditorExtensions/Editor/UI/Images/wheel.png", typeof(Texture2D)) as Texture2D, angle++); 173 | GUILayout.Button(new GUIContent(string.Format(" {0} SDK is installing", Name), image), AppCenterEditorHelper.uiStyle.GetStyle("customButton"), GUILayout.MaxWidth(200), GUILayout.MinHeight(32)); 174 | } 175 | else 176 | { 177 | if (GUILayout.Button("Install SDK", AppCenterEditorHelper.uiStyle.GetStyle("textButton"))) 178 | { 179 | AppCenterEditorSDKTools.IsInstalling = IsPackageInstalling = true; 180 | ImportLatestPackageSDK(); 181 | } 182 | } 183 | GUILayout.FlexibleSpace(); 184 | } 185 | } 186 | } 187 | 188 | public string GetDownloadUrl(string version) 189 | { 190 | if (string.IsNullOrEmpty(version) || version == Constants.UnknownVersion) 191 | { 192 | return DownloadLatestUrl; 193 | } 194 | else 195 | { 196 | return string.Format(DownloadUrlFormat, version); 197 | } 198 | } 199 | 200 | public void GetInstalledVersion(Type type, string coreVersion) 201 | { 202 | foreach (var field in type.GetFields()) 203 | { 204 | if (field.Name == VersionFieldName) 205 | { 206 | InstalledVersion = field.GetValue(field).ToString(); 207 | break; 208 | } 209 | } 210 | if (string.IsNullOrEmpty(InstalledVersion)) 211 | { 212 | InstalledVersion = Constants.UnknownVersion; 213 | } 214 | } 215 | 216 | private void ImportLatestPackageSDK() 217 | { 218 | try 219 | { 220 | PackagesInstaller.ImportLatestSDK(new[] { this }, AppCenterEditorSDKTools.LatestSdkVersion); 221 | } 222 | catch (Exception exception) 223 | { 224 | EdExLogger.LoggerInstance.LogError("Failed to import package: " + exception); 225 | AppCenterEditorSDKTools.IsInstalling = IsPackageInstalling = false; 226 | } 227 | } 228 | } 229 | } 230 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Panels/SDKPackage/AppCenterSDKPackage.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9eea6442f3431d240b5fc226398b147f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 650530f20e6ea42d9a780a37a9774a42 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/AppCenterEditorGuiFieldHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | using UnityEngine; 5 | 6 | namespace AppCenterEditor 7 | { 8 | public static class AppCenterGuiFieldHelper 9 | { 10 | 11 | /// 12 | /// A disposable wrapper for Verticals, to ensure they're paired properly, and to make the code visually block together within them 13 | /// 14 | public class UnityHorizontal : IDisposable 15 | { 16 | public UnityHorizontal(params GUILayoutOption[] options) 17 | { 18 | EditorGUILayout.BeginHorizontal(options); 19 | } 20 | 21 | public UnityHorizontal(GUIStyle style, params GUILayoutOption[] options) 22 | { 23 | EditorGUILayout.BeginHorizontal(style, options); 24 | } 25 | 26 | public void Dispose() 27 | { 28 | EditorGUILayout.EndHorizontal(); 29 | } 30 | } 31 | 32 | /// 33 | /// A disposable wrapper for Horizontals, to ensure they're paired properly, and to make the code visually block together within them 34 | /// 35 | public class UnityVertical : IDisposable 36 | { 37 | public UnityVertical(params GUILayoutOption[] options) 38 | { 39 | EditorGUILayout.BeginVertical(options); 40 | } 41 | 42 | public UnityVertical(GUIStyle style, params GUILayoutOption[] options) 43 | { 44 | EditorGUILayout.BeginVertical(style, options); 45 | } 46 | 47 | public void Dispose() 48 | { 49 | EditorGUILayout.EndVertical(); 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/AppCenterEditorGuiFieldHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d96a7c436f35b439192d00d70db71bf2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/AppCenterEditorHelper.cs: -------------------------------------------------------------------------------- 1 | using UnityEditor; 2 | using UnityEngine; 3 | using System; 4 | using System.IO; 5 | 6 | namespace AppCenterEditor 7 | { 8 | [InitializeOnLoad] 9 | public static partial class AppCenterEditorHelper 10 | { 11 | public static string EDEX_NAME = "AppCenterEditorExtensions"; 12 | public static string EDEX_ROOT = Path.Combine(Application.dataPath, "AppCenterEditorExtensions/Editor"); 13 | public static string APPCENTER_SETTINGS_TYPENAME = "AppCenterSettings"; 14 | public static string APPCENTER_WRAPPER_SDK_TYPENAME = "WrapperSdk"; 15 | public static string DEFAULT_SDK_LOCATION = "Assets/AppCenter"; 16 | public static string DEFAULT_SDK_LOCATION_PATH = Application.dataPath + "/AppCenter"; 17 | public static string MSG_SPIN_BLOCK = "{\"useSpinner\":true, \"blockUi\":true }"; 18 | public static string ANALYTICS_SDK_DOWNLOAD_PATH = "/Resources/AppCenterAnalyticsUnitySdk.unitypackage"; 19 | public static string CRASHES_SDK_DOWNLOAD_PATH = "/Resources/AppCenterCrashesUnitySdk.unitypackage"; 20 | public static string DISTRIBUTE_SDK_DOWNLOAD_PATH = "/Resources/AppCenterDistributeUnitySdk.unitypackage"; 21 | public static string EDEX_UPGRADE_PATH = "/Resources/AppCenterUnityEditorExtensions.unitypackage"; 22 | public static string EDEX_PACKAGES_PATH = "/Resources/MostRecentPackage.unitypackage"; 23 | 24 | private static GUISkin _uiStyle; 25 | 26 | public static GUISkin uiStyle 27 | { 28 | get 29 | { 30 | if (_uiStyle != null) 31 | return _uiStyle; 32 | _uiStyle = GetUiStyle(); 33 | return _uiStyle; 34 | } 35 | } 36 | 37 | public static void SharedErrorCallback(string error) 38 | { 39 | AppCenterEditor.RaiseStateUpdate(AppCenterEditor.EdExStates.OnError, error); 40 | } 41 | 42 | private static GUISkin GetUiStyle() 43 | { 44 | var searchRoot = string.IsNullOrEmpty(EDEX_ROOT) ? Application.dataPath : EDEX_ROOT; 45 | string[] guiPaths; 46 | 47 | if (Directory.Exists(searchRoot)) 48 | { 49 | guiPaths = FindGuiSkinPaths(searchRoot); 50 | } 51 | else 52 | { 53 | EDEX_ROOT = FindEdexRoot(); 54 | guiPaths = FindGuiSkinPaths(EDEX_ROOT); 55 | } 56 | 57 | foreach (var eachPath in guiPaths) 58 | { 59 | var loadPath = eachPath.Substring(eachPath.LastIndexOf("Assets" + Path.DirectorySeparatorChar, StringComparison.Ordinal)); 60 | return (GUISkin) AssetDatabase.LoadAssetAtPath(loadPath, typeof(GUISkin)); 61 | } 62 | 63 | return null; 64 | } 65 | 66 | private static string[] FindGuiSkinPaths(string searchPath) 67 | { 68 | return Directory.GetFiles(searchPath, "AppCenterStyles.guiskin", SearchOption.AllDirectories); 69 | } 70 | 71 | private static string FindEdexRoot() 72 | { 73 | var directoryList = Directory.GetDirectories(Application.dataPath, "*" + EDEX_NAME, SearchOption.AllDirectories); 74 | if (directoryList.Length == 0) 75 | { 76 | throw new DirectoryNotFoundException(EDEX_NAME + " not found"); 77 | } 78 | 79 | var relativePath = directoryList[0].Substring(directoryList[0].LastIndexOf("Assets" + Path.DirectorySeparatorChar, StringComparison.Ordinal)); 80 | return Path.Combine(relativePath, "Editor"); 81 | } 82 | } 83 | } -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/AppCenterEditorHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7e4708e69744494f98d2972fc0a1584 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/AppCenterEditorPrefsSO.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEditor; 3 | using UnityEngine; 4 | using System; 5 | using System.IO; 6 | using System.Globalization; 7 | 8 | namespace AppCenterEditor 9 | { 10 | #if UNITY_5_3_OR_NEWER 11 | [CreateAssetMenu(fileName = "AppCenterEditorPrefsSO", menuName = "App Center/Make Prefs SO", order = 1)] 12 | #endif 13 | public class AppCenterEditorPrefsSO : ScriptableObject 14 | { 15 | public const string EdExLastCheckDateKey = "EdExLastCheckDateKey"; 16 | public const string SdkLastCheckDateKey = "SdkLastCheckDateKey"; 17 | public string SdkPath; 18 | public string EdExPath; 19 | public bool PanelIsShown; 20 | public int curMainMenuIdx; 21 | private string _latestSdkVersion; 22 | private string _latestEdExVersion; 23 | private DateTime _lastSdkVersionCheck; 24 | private DateTime _lastEdExVersionCheck; 25 | private static AppCenterEditorPrefsSO _instance; 26 | 27 | public string EdSet_latestSdkVersion 28 | { 29 | get 30 | { 31 | return _latestSdkVersion; 32 | } 33 | set 34 | { 35 | _latestSdkVersion = value; 36 | _lastSdkVersionCheck = DateTime.UtcNow; 37 | PlayerPrefs.SetString(SdkLastCheckDateKey, _lastSdkVersionCheck.ToString(CultureInfo.InvariantCulture)); 38 | } 39 | } 40 | 41 | public string EdSet_latestEdExVersion 42 | { 43 | get 44 | { 45 | return _latestEdExVersion; 46 | } 47 | set 48 | { 49 | _latestEdExVersion = value; 50 | _lastEdExVersionCheck = DateTime.UtcNow; 51 | PlayerPrefs.SetString(EdExLastCheckDateKey, _lastEdExVersionCheck.ToString(CultureInfo.InvariantCulture)); 52 | } 53 | } 54 | 55 | public DateTime EdSet_lastSdkVersionCheck 56 | { 57 | get 58 | { 59 | return PlayerPrefs.HasKey(SdkLastCheckDateKey) ? DateTime.Parse(PlayerPrefs.GetString(SdkLastCheckDateKey), CultureInfo.InvariantCulture) : _lastSdkVersionCheck; 60 | } 61 | } 62 | 63 | public DateTime EdSet_lastEdExVersionCheck 64 | { 65 | get 66 | { 67 | return PlayerPrefs.HasKey(EdExLastCheckDateKey) ? DateTime.Parse(PlayerPrefs.GetString(EdExLastCheckDateKey), CultureInfo.InvariantCulture) : _lastEdExVersionCheck; 68 | } 69 | } 70 | 71 | public static AppCenterEditorPrefsSO Instance 72 | { 73 | get 74 | { 75 | if (_instance != null) 76 | return _instance; 77 | 78 | var settingsList = Resources.LoadAll("AppCenterEditorPrefsSO"); 79 | if (settingsList.Length == 1) 80 | _instance = settingsList[0]; 81 | if (_instance != null) 82 | return _instance; 83 | _instance = CreateInstance(); 84 | if (!Directory.Exists(Path.Combine(Application.dataPath, "AppCenterEditorExtensions/Editor/Resources"))) 85 | Directory.CreateDirectory(Path.Combine(Application.dataPath, "AppCenterEditorExtensions/Editor/Resources")); 86 | AssetDatabase.CreateAsset(_instance, "Assets/AppCenterEditorExtensions/Editor/Resources/AppCenterEditorPrefsSO.asset"); 87 | AssetDatabase.SaveAssets(); 88 | EdExLogger.LoggerInstance.LogWithTimeStamp("Created missing AppCenterEditorPrefsSO file"); 89 | return _instance; 90 | } 91 | } 92 | 93 | public static void Save() 94 | { 95 | EditorUtility.SetDirty(_instance); 96 | AssetDatabase.SaveAssets(); 97 | } 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/AppCenterEditorPrefsSO.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cbb9dcf2e78804b9384db79873454e2f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/AppCenterEditorVersion.cs: -------------------------------------------------------------------------------- 1 | namespace AppCenterEditor 2 | { 3 | public static partial class AppCenterEditorHelper 4 | { 5 | public static string EDEX_VERSION = "3.0.0"; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/AppCenterEditorVersion.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca7cc6f0d12514529b75b5a1e489ef41 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/Coroutiner.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | /// 5 | /// Author: Sebastiaan Fehr (Seb@TheBinaryMill.com) 6 | /// Date: March 2013 7 | /// Summary: Creates MonoBehaviour instance through which 8 | /// static classes can call StartCoroutine. 9 | /// Description: Classes that do not inherit from MonoBehaviour, or static 10 | /// functions within MonoBehaviours are inertly unable to 11 | /// call StartCoroutene, as this function is not static and 12 | /// does not exist on Object. This Class creates a proxy though 13 | /// which StartCoroutene can be called, and destroys it when 14 | /// no longer needed. 15 | /// 16 | public class Coroutiner 17 | { 18 | 19 | public static Coroutine StartCoroutine(IEnumerator iterationResult) 20 | { 21 | //Create GameObject with MonoBehaviour to handle task. 22 | GameObject routeneHandlerGo = new GameObject("Coroutiner"); 23 | CoroutinerInstance routeneHandler 24 | = routeneHandlerGo.AddComponent(typeof(CoroutinerInstance)) 25 | as CoroutinerInstance; 26 | return routeneHandler.ProcessWork(iterationResult); 27 | } 28 | 29 | } 30 | 31 | public class CoroutinerInstance : MonoBehaviour 32 | { 33 | 34 | public Coroutine ProcessWork(IEnumerator iterationResult) 35 | { 36 | return StartCoroutine(DestroyWhenComplete(iterationResult)); 37 | } 38 | 39 | public IEnumerator DestroyWhenComplete(IEnumerator iterationResult) 40 | { 41 | yield return StartCoroutine(iterationResult); 42 | DestroyImmediate(gameObject); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/EdExLoggerFactory.cs: -------------------------------------------------------------------------------- 1 |  2 | //Factory. 3 | namespace AppCenterEditor 4 | { 5 | class EdExLogger 6 | { 7 | private static IEdExLogger _instance; 8 | 9 | public static IEdExLogger LoggerInstance 10 | { 11 | get 12 | { 13 | if (_instance == null) 14 | { 15 | _instance = new LocalLogger(); 16 | } 17 | return _instance; 18 | } 19 | } 20 | 21 | private EdExLogger() 22 | { 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/EdExLoggerFactory.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ecaed167bfab43f4b952d32525e60583 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/EditorCoroutine.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 467ceea21028648f08899c3321e1c8c5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/IEdExLogger.cs: -------------------------------------------------------------------------------- 1 | namespace AppCenterEditor 2 | { 3 | interface IEdExLogger 4 | { 5 | void LogWithTimeStamp(string message); 6 | 7 | void LogWarning(string message); 8 | 9 | void LogError(string message); 10 | 11 | void Log(string message); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/IEdExLogger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8bd5be8d50f07d94b9ecdd399064d573 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/LocalLogger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace AppCenterEditor 5 | { 6 | class LocalLogger: IEdExLogger 7 | { 8 | public void LogWithTimeStamp(string message) 9 | { 10 | Debug.Log(GetUniqueMessage(message)); 11 | } 12 | 13 | public void LogWarning(string message) 14 | { 15 | Debug.LogWarning(GetUniqueMessage(message)); 16 | } 17 | 18 | public void LogError(string message) 19 | { 20 | Debug.LogError(GetUniqueMessage(message)); 21 | } 22 | 23 | public void Log(string message) 24 | { 25 | Debug.Log(message); 26 | } 27 | 28 | private string GetUniqueMessage(string message) 29 | { 30 | // Return unique message in order to distinguish similar messages. 31 | return string.Format("[App Center EdEx MSG{0}] {1}", DateTime.Now.Millisecond, message); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/Scripts/Utils/LocalLogger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3bc93f39e9d0fc34eb720ccbc6bd5dc9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ba318e9601f0d44a8bf3051db0d011c8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/AppCenterStyles.guiskin.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 945c7829b233c4083ae582acca910d87 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Fonts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40a60cfa9005048dea3df01c8f2db817 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Fonts/Avalon Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Fonts/Avalon Bold.ttf -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Fonts/Avalon Bold.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 96e17474f840a01459f0cc936c5d4d9b 3 | timeCreated: 1465800940 4 | licenseType: Pro 5 | TrueTypeFontImporter: 6 | serializedVersion: 3 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 1 10 | characterPadding: 0 11 | includeFontData: 1 12 | fontNames: [] 13 | fallbackFontReferences: [] 14 | customCharacters: 15 | fontRenderingMode: 0 16 | ascentCalculationMode: 1 17 | userData: 18 | assetBundleName: 19 | assetBundleVariant: 20 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Fonts/Avalon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Fonts/Avalon.ttf -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Fonts/Avalon.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 436664d726292a54fa79d2168f4541ac 3 | timeCreated: 1465800973 4 | licenseType: Pro 5 | TrueTypeFontImporter: 6 | serializedVersion: 3 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 1 10 | characterPadding: 0 11 | includeFontData: 1 12 | fontNames: [] 13 | fallbackFontReferences: [] 14 | customCharacters: 15 | fontRenderingMode: 0 16 | ascentCalculationMode: 1 17 | userData: 18 | assetBundleName: 19 | assetBundleVariant: 20 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ead685b6f142449aaf5cd6c6816ab0f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/AppCenterEditorIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/AppCenterEditorIcon.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/AppCenterEditorIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6a86fa7486365949986b148160cd152 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 2 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: Android 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Windows Store Apps 107 | maxTextureSize: 2048 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | spriteSheet: 117 | serializedVersion: 2 118 | sprites: [] 119 | outline: [] 120 | physicsShape: [] 121 | bones: [] 122 | spriteID: 123 | vertices: [] 124 | indices: 125 | edges: [] 126 | weights: [] 127 | spritePackingTag: 128 | pSDRemoveMatte: 0 129 | pSDShowRemoveMatteOption: 0 130 | userData: 131 | assetBundleName: 132 | assetBundleVariant: 133 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Black.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Black.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66d3ceb5fa86d498891e23dd5303a8f7 3 | timeCreated: 1468018889 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 32 31 | textureSettings: 32 | filterMode: 0 33 | aniso: 0 34 | mipBias: -1 35 | wrapMode: 0 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 0.001 48 | alphaIsTransparency: 0 49 | textureType: 0 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Clear.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Clear.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 092f0246298fc4ec78dbb9dcf5ed83e5 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_base.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_base.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 450b7f199fd52483e98fefe9874a8db6 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_dk1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_dk1.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_dk1.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b448351bef2db4b448ef1eb6309a2f5d 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_lt1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_lt1.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_lt1.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58599f3437ab14851b8d21e417b9bac8 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_lt2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_lt2.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Gray_lt2.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e856215de795f4da391c71b298789c92 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Orange.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Orange.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 286dbc34451574bab8002be838a2dec4 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Square.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Square.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/Square.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92e4fa3a17ff0498a9cf6d6ecd8e32b5 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/White.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/White.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/White.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5ea49187d2b64ede98639a6ba016a61 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/checkmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/checkmark.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/checkmark.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 809873d464c3c4988b652b392d0dc378 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/checkmark_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/checkmark_off.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/checkmark_off.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d20c53c8cad21024091aeed0b9bf2a0e 3 | timeCreated: 1466460612 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/checkmark_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/checkmark_on.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/checkmark_on.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a2f13c216f2649d49b892cade7f4e5f0 3 | timeCreated: 1466460612 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dashboardIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dashboardIcon.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dashboardIcon.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d4df8ffe68a9438ba4833c0678b97b3 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dashboardIconHover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dashboardIconHover.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dashboardIconHover.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd50486fbb8b648b3bc32124bc841c0f 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dn_colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dn_colored.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dn_colored.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 19a121bd9ef8040c4897cf0c3938d638 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dn_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dn_gray.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/dn_gray.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d18cf6e30e1ec40e786fff9d747358c2 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/green.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/green.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2fd02595b1014de8acf94006b559592 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/magenta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/magenta.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/magenta.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 97ed4254d61244494b57b9d363c8a1d7 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/r_colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/r_colored.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/r_colored.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bdee703aeb281435a9e292c816de317c 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/r_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/r_gray.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/r_gray.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0affd6ff09c7647da9d7d80de5436890 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/red.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/red.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3da21963adc743948ae086a74fb614a 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/wheel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/wheel.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/wheel.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b636f19c2539449881de8920af2538d 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 1 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: 1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: -1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 2 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: iPhone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | - serializedVersion: 2 95 | buildTarget: tvOS 96 | maxTextureSize: 2048 97 | resizeAlgorithm: 0 98 | textureFormat: -1 99 | textureCompression: 1 100 | compressionQuality: 50 101 | crunchedCompression: 0 102 | allowsAlphaSplitting: 0 103 | overridden: 0 104 | androidETC2FallbackOverride: 0 105 | - serializedVersion: 2 106 | buildTarget: Android 107 | maxTextureSize: 2048 108 | resizeAlgorithm: 0 109 | textureFormat: -1 110 | textureCompression: 1 111 | compressionQuality: 50 112 | crunchedCompression: 0 113 | allowsAlphaSplitting: 0 114 | overridden: 0 115 | androidETC2FallbackOverride: 0 116 | - serializedVersion: 2 117 | buildTarget: WebGL 118 | maxTextureSize: 2048 119 | resizeAlgorithm: 0 120 | textureFormat: -1 121 | textureCompression: 1 122 | compressionQuality: 50 123 | crunchedCompression: 0 124 | allowsAlphaSplitting: 0 125 | overridden: 0 126 | androidETC2FallbackOverride: 0 127 | spriteSheet: 128 | serializedVersion: 2 129 | sprites: [] 130 | outline: [] 131 | physicsShape: [] 132 | bones: [] 133 | spriteID: 134 | vertices: [] 135 | indices: 136 | edges: [] 137 | weights: [] 138 | spritePackingTag: 139 | pSDRemoveMatte: 0 140 | pSDShowRemoveMatteOption: 0 141 | userData: 142 | assetBundleName: 143 | assetBundleVariant: 144 | -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/yellow.png -------------------------------------------------------------------------------- /Source/Assets/AppCenterEditorExtensions/Editor/UI/Images/yellow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d9fbb2fce9014025baef3f63f94cb37 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 7 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Source/Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ads": "2.0.8", 4 | "com.unity.analytics": "2.0.16", 5 | "com.unity.package-manager-ui": "1.9.11", 6 | "com.unity.purchasing": "2.0.3", 7 | "com.unity.textmeshpro": "1.2.4", 8 | "com.unity.modules.ai": "1.0.0", 9 | "com.unity.modules.animation": "1.0.0", 10 | "com.unity.modules.assetbundle": "1.0.0", 11 | "com.unity.modules.audio": "1.0.0", 12 | "com.unity.modules.cloth": "1.0.0", 13 | "com.unity.modules.director": "1.0.0", 14 | "com.unity.modules.imageconversion": "1.0.0", 15 | "com.unity.modules.imgui": "1.0.0", 16 | "com.unity.modules.jsonserialize": "1.0.0", 17 | "com.unity.modules.particlesystem": "1.0.0", 18 | "com.unity.modules.physics": "1.0.0", 19 | "com.unity.modules.physics2d": "1.0.0", 20 | "com.unity.modules.screencapture": "1.0.0", 21 | "com.unity.modules.terrain": "1.0.0", 22 | "com.unity.modules.terrainphysics": "1.0.0", 23 | "com.unity.modules.tilemap": "1.0.0", 24 | "com.unity.modules.ui": "1.0.0", 25 | "com.unity.modules.uielements": "1.0.0", 26 | "com.unity.modules.umbra": "1.0.0", 27 | "com.unity.modules.unityanalytics": "1.0.0", 28 | "com.unity.modules.unitywebrequest": "1.0.0", 29 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 30 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 31 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 32 | "com.unity.modules.unitywebrequestwww": "1.0.0", 33 | "com.unity.modules.vehicles": "1.0.0", 34 | "com.unity.modules.video": "1.0.0", 35 | "com.unity.modules.vr": "1.0.0", 36 | "com.unity.modules.wind": "1.0.0", 37 | "com.unity.modules.xr": "1.0.0" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /UnityPackageSpecs/AppCenterEditorExtensions.unitypackagespec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /build.cake: -------------------------------------------------------------------------------- 1 | #addin "Cake.AzureStorage" 2 | #addin nuget:?package=Cake.FileHelpers 3 | #addin nuget:?package=NuGet.Core 4 | #load "utility.cake" 5 | 6 | using System; 7 | using System.Linq; 8 | using System.Net; 9 | using System.Collections.Generic; 10 | using System.Runtime.Versioning; 11 | using NuGet; 12 | 13 | // Task TARGET for build 14 | var Target = Argument("target", Argument("t", "Default")); 15 | 16 | // Spec files can have up to one dependency. 17 | class UnityPackage 18 | { 19 | private string _packageName; 20 | private string _packageVersion; 21 | private List _includePaths = new List(); 22 | 23 | public UnityPackage(string specFilePath) 24 | { 25 | AddFilesFromSpec(specFilePath); 26 | } 27 | 28 | private void AddFilesFromSpec(string specFilePath) 29 | { 30 | _packageName = Statics.Context.XmlPeek(specFilePath, "package/@name"); 31 | _packageVersion = Statics.Context.XmlPeek(specFilePath, "package/@version"); 32 | if (_packageName == null || _packageVersion == null) 33 | { 34 | Statics.Context.Error("Invalid format for UnityPackageSpec file '" + specFilePath + "': missing package name or version"); 35 | return; 36 | } 37 | 38 | var xpathPrefix = "/package/include/file["; 39 | var xpathSuffix= "]/@path"; 40 | 41 | string lastPath = Statics.Context.XmlPeek(specFilePath, xpathPrefix + "last()" + xpathSuffix); 42 | var currentIdx = 1; 43 | var currentPath = Statics.Context.XmlPeek(specFilePath, xpathPrefix + currentIdx++ + xpathSuffix); 44 | 45 | if (currentPath != null) 46 | { 47 | _includePaths.Add(currentPath); 48 | } 49 | while (currentPath != lastPath) 50 | { 51 | currentPath = Statics.Context.XmlPeek(specFilePath, xpathPrefix + currentIdx++ + xpathSuffix); 52 | _includePaths.Add(currentPath); 53 | } 54 | } 55 | 56 | public void CreatePackage(string targetDirectory) 57 | { 58 | var args = "-exportPackage "; 59 | foreach (var path in _includePaths) 60 | { 61 | args += " " + path; 62 | } 63 | var fullPackageName = _packageName + "-v" + _packageVersion + ".unitypackage"; 64 | args += " " + targetDirectory + "/" + fullPackageName; 65 | var result = ExecuteUnityCommand(args, "Source"); 66 | if (result != 0) 67 | { 68 | Statics.Context.Error("Something went wrong while creating Unity package '" + fullPackageName + "'"); 69 | } 70 | } 71 | 72 | public void CopyFiles(DirectoryPath targetDirectory) 73 | { 74 | foreach (var path in _includePaths) 75 | { 76 | if (Statics.Context.DirectoryExists(path)) 77 | { 78 | Statics.Context.CopyDirectory(path, targetDirectory.Combine(path)); 79 | } 80 | else 81 | { 82 | Statics.Context.CopyFile(path, targetDirectory.CombineWithFilePath(path)); 83 | } 84 | } 85 | } 86 | } 87 | 88 | // Install Unity Editor for Windows 89 | Task("Install-Unity-Windows").Does(() => { 90 | const string unityDownloadUrl = @"https://netstorage.unity3d.com/unity/2207421190e9/Windows64EditorInstaller/UnitySetup64-2018.2.9f1.exe"; 91 | 92 | Information("Downloading Unity Editor..."); 93 | DownloadFile(unityDownloadUrl, "./UnitySetup64.exe"); 94 | Information("Installing Unity Editor..."); 95 | var result = StartProcess("./UnitySetup64.exe", " /S"); 96 | if (result != 0) 97 | { 98 | throw new Exception("Failed to install Unity Editor"); 99 | } 100 | }).OnError(HandleError); 101 | 102 | // Creates Unity packages corresponding to all ".unitypackagespec" files in "UnityPackageSpecs" folder 103 | Task("CreatePackages").Does(()=> 104 | { 105 | // Store packages in a clean folder. 106 | const string outputDirectory = "output"; 107 | CleanDirectory(outputDirectory); 108 | var specFiles = GetFiles("UnityPackageSpecs/*.unitypackagespec"); 109 | foreach (var spec in specFiles) 110 | { 111 | var package = new UnityPackage(spec.FullPath); 112 | package.CreatePackage(MakeAbsolute(Directory(outputDirectory)).FullPath); 113 | } 114 | }); 115 | 116 | Task("RegisterUnity").Does(()=> 117 | { 118 | var serialNumber = Argument("UnitySerialNumber"); 119 | var username = Argument("UnityUsername"); 120 | var password = Argument("UnityPassword"); 121 | 122 | // This will produce an error, but that's okay because the project "noproject" is used so that the 123 | // root isn't opened by unity, which could potentially remove important .meta files. 124 | ExecuteUnityCommand($"-serial {serialNumber} -username {username} -password {password}", "noproject"); 125 | }).OnError(HandleError); 126 | 127 | Task("UnregisterUnity").Does(()=> 128 | { 129 | ExecuteUnityCommand("-returnLicense", null); 130 | }).OnError(HandleError); 131 | 132 | // Default Task. 133 | Task("Default").IsDependentOn("CreatePackages"); 134 | 135 | // Clean up files/directories. 136 | Task("clean") 137 | .IsDependentOn("RemoveTemporaries") 138 | .Does(() => 139 | { 140 | DeleteDirectoryIfExists("output"); 141 | }); 142 | 143 | RunTarget(Target); 144 | -------------------------------------------------------------------------------- /build.ps1: -------------------------------------------------------------------------------- 1 | ########################################################################## 2 | # This is the Cake bootstrapper script for PowerShell. 3 | # This file was downloaded from https://github.com/cake-build/resources 4 | # Feel free to change this file to fit your needs. 5 | ########################################################################## 6 | 7 | <# 8 | 9 | .SYNOPSIS 10 | This is a Powershell script to bootstrap a Cake build. 11 | 12 | .DESCRIPTION 13 | This Powershell script will download NuGet if missing, restore NuGet tools (including Cake) 14 | and execute your Cake build script with the parameters you provide. 15 | 16 | .PARAMETER Script 17 | The build script to execute. 18 | .PARAMETER Target 19 | The build script target to run. 20 | .PARAMETER Configuration 21 | The build configuration to use. 22 | .PARAMETER Verbosity 23 | Specifies the amount of information to be displayed. 24 | .PARAMETER ShowDescription 25 | Shows description about tasks. 26 | .PARAMETER DryRun 27 | Performs a dry run. 28 | .PARAMETER Experimental 29 | Uses the nightly builds of the Roslyn script engine. 30 | .PARAMETER Mono 31 | Uses the Mono Compiler rather than the Roslyn script engine. 32 | .PARAMETER SkipToolPackageRestore 33 | Skips restoring of packages. 34 | .PARAMETER ScriptArgs 35 | Remaining arguments are added here. 36 | 37 | .LINK 38 | https://cakebuild.net 39 | 40 | #> 41 | 42 | [CmdletBinding()] 43 | Param( 44 | [string]$Script = "build.cake", 45 | [string]$Target, 46 | [string]$Configuration, 47 | [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")] 48 | [string]$Verbosity, 49 | [switch]$ShowDescription, 50 | [Alias("WhatIf", "Noop")] 51 | [switch]$DryRun, 52 | [switch]$Experimental, 53 | [switch]$Mono, 54 | [switch]$SkipToolPackageRestore, 55 | [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] 56 | [string[]]$ScriptArgs 57 | ) 58 | 59 | [Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null 60 | function MD5HashFile([string] $filePath) 61 | { 62 | if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf)) 63 | { 64 | return $null 65 | } 66 | 67 | [System.IO.Stream] $file = $null; 68 | [System.Security.Cryptography.MD5] $md5 = $null; 69 | try 70 | { 71 | $md5 = [System.Security.Cryptography.MD5]::Create() 72 | $file = [System.IO.File]::OpenRead($filePath) 73 | return [System.BitConverter]::ToString($md5.ComputeHash($file)) 74 | } 75 | finally 76 | { 77 | if ($file -ne $null) 78 | { 79 | $file.Dispose() 80 | } 81 | } 82 | } 83 | 84 | function GetProxyEnabledWebClient 85 | { 86 | $wc = New-Object System.Net.WebClient 87 | $proxy = [System.Net.WebRequest]::GetSystemWebProxy() 88 | $proxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials 89 | $wc.Proxy = $proxy 90 | return $wc 91 | } 92 | 93 | Write-Host "Preparing to run build script..." 94 | 95 | if(!$PSScriptRoot){ 96 | $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent 97 | } 98 | 99 | $TOOLS_DIR = Join-Path $PSScriptRoot "tools" 100 | $ADDINS_DIR = Join-Path $TOOLS_DIR "Addins" 101 | $MODULES_DIR = Join-Path $TOOLS_DIR "Modules" 102 | $NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe" 103 | $CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe" 104 | $NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" 105 | $PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config" 106 | $PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum" 107 | $ADDINS_PACKAGES_CONFIG = Join-Path $ADDINS_DIR "packages.config" 108 | $MODULES_PACKAGES_CONFIG = Join-Path $MODULES_DIR "packages.config" 109 | 110 | # Make sure tools folder exists 111 | if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) { 112 | Write-Verbose -Message "Creating tools directory..." 113 | New-Item -Path $TOOLS_DIR -Type directory | out-null 114 | } 115 | 116 | # Make sure that packages.config exist. 117 | if (!(Test-Path $PACKAGES_CONFIG)) { 118 | Write-Verbose -Message "Downloading packages.config..." 119 | try { 120 | $wc = GetProxyEnabledWebClient 121 | $wc.DownloadFile("https://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) 122 | } catch { 123 | Throw "Could not download packages.config." 124 | } 125 | } 126 | 127 | # Try find NuGet.exe in path if not exists 128 | if (!(Test-Path $NUGET_EXE)) { 129 | Write-Verbose -Message "Trying to find nuget.exe in PATH..." 130 | $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_ -PathType Container) } 131 | $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1 132 | if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) { 133 | Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)." 134 | $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName 135 | } 136 | } 137 | 138 | # Try download NuGet.exe if not exists 139 | if (!(Test-Path $NUGET_EXE)) { 140 | Write-Verbose -Message "Downloading NuGet.exe..." 141 | try { 142 | $wc = GetProxyEnabledWebClient 143 | $wc.DownloadFile($NUGET_URL, $NUGET_EXE) 144 | } catch { 145 | Throw "Could not download NuGet.exe." 146 | } 147 | } 148 | 149 | # Save nuget.exe path to environment to be available to child processed 150 | $ENV:NUGET_EXE = $NUGET_EXE 151 | 152 | # Restore tools from NuGet? 153 | if(-Not $SkipToolPackageRestore.IsPresent) { 154 | Push-Location 155 | Set-Location $TOOLS_DIR 156 | 157 | # Check for changes in packages.config and remove installed tools if true. 158 | [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG) 159 | if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or 160 | ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) { 161 | Write-Verbose -Message "Missing or changed package.config hash..." 162 | Get-ChildItem -Exclude packages.config,nuget.exe,Cake.Bakery | 163 | Remove-Item -Recurse 164 | } 165 | 166 | Write-Verbose -Message "Restoring tools from NuGet..." 167 | $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`"" 168 | 169 | if ($LASTEXITCODE -ne 0) { 170 | Throw "An error occurred while restoring NuGet tools." 171 | } 172 | else 173 | { 174 | $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII" 175 | } 176 | Write-Verbose -Message ($NuGetOutput | out-string) 177 | 178 | Pop-Location 179 | } 180 | 181 | # Restore addins from NuGet 182 | if (Test-Path $ADDINS_PACKAGES_CONFIG) { 183 | Push-Location 184 | Set-Location $ADDINS_DIR 185 | 186 | Write-Verbose -Message "Restoring addins from NuGet..." 187 | $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$ADDINS_DIR`"" 188 | 189 | if ($LASTEXITCODE -ne 0) { 190 | Throw "An error occurred while restoring NuGet addins." 191 | } 192 | 193 | Write-Verbose -Message ($NuGetOutput | out-string) 194 | 195 | Pop-Location 196 | } 197 | 198 | # Restore modules from NuGet 199 | if (Test-Path $MODULES_PACKAGES_CONFIG) { 200 | Push-Location 201 | Set-Location $MODULES_DIR 202 | 203 | Write-Verbose -Message "Restoring modules from NuGet..." 204 | $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$MODULES_DIR`"" 205 | 206 | if ($LASTEXITCODE -ne 0) { 207 | Throw "An error occurred while restoring NuGet modules." 208 | } 209 | 210 | Write-Verbose -Message ($NuGetOutput | out-string) 211 | 212 | Pop-Location 213 | } 214 | 215 | # Make sure that Cake has been installed. 216 | if (!(Test-Path $CAKE_EXE)) { 217 | Throw "Could not find Cake.exe at $CAKE_EXE" 218 | } 219 | 220 | 221 | 222 | # Build Cake arguments 223 | $cakeArguments = @("$Script"); 224 | if ($Target) { $cakeArguments += "-target=$Target" } 225 | if ($Configuration) { $cakeArguments += "-configuration=$Configuration" } 226 | if ($Verbosity) { $cakeArguments += "-verbosity=$Verbosity" } 227 | if ($ShowDescription) { $cakeArguments += "-showdescription" } 228 | if ($DryRun) { $cakeArguments += "-dryrun" } 229 | if ($Experimental) { $cakeArguments += "-experimental" } 230 | if ($Mono) { $cakeArguments += "-mono" } 231 | $cakeArguments += $ScriptArgs 232 | 233 | # Start Cake 234 | Write-Host "Running build script..." 235 | &$CAKE_EXE $cakeArguments --settings_skipverification=true 236 | exit $LASTEXITCODE 237 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ########################################################################## 4 | # This is the Cake bootstrapper script for Linux and OS X. 5 | # This file was downloaded from https://github.com/cake-build/resources 6 | # Feel free to change this file to fit your needs. 7 | ########################################################################## 8 | 9 | # Define directories. 10 | SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) 11 | TOOLS_DIR=$SCRIPT_DIR/tools 12 | ADDINS_DIR=$TOOLS_DIR/Addins 13 | MODULES_DIR=$TOOLS_DIR/Modules 14 | NUGET_EXE=$TOOLS_DIR/nuget.exe 15 | CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe 16 | PACKAGES_CONFIG=$TOOLS_DIR/packages.config 17 | PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum 18 | ADDINS_PACKAGES_CONFIG=$ADDINS_DIR/packages.config 19 | MODULES_PACKAGES_CONFIG=$MODULES_DIR/packages.config 20 | 21 | # Define md5sum or md5 depending on Linux/OSX 22 | MD5_EXE= 23 | if [[ "$(uname -s)" == "Darwin" ]]; then 24 | MD5_EXE="md5 -r" 25 | else 26 | MD5_EXE="md5sum" 27 | fi 28 | 29 | # Define default arguments. 30 | SCRIPT="build.cake" 31 | CAKE_ARGUMENTS=() 32 | 33 | # Parse arguments. 34 | for i in "$@"; do 35 | case $1 in 36 | -s|--script) SCRIPT="$2"; shift ;; 37 | --) shift; CAKE_ARGUMENTS+=("$@"); break ;; 38 | *) CAKE_ARGUMENTS+=("$1") ;; 39 | esac 40 | shift 41 | done 42 | 43 | # Make sure the tools folder exist. 44 | if [ ! -d "$TOOLS_DIR" ]; then 45 | mkdir "$TOOLS_DIR" 46 | fi 47 | 48 | # Make sure that packages.config exist. 49 | if [ ! -f "$TOOLS_DIR/packages.config" ]; then 50 | echo "Downloading packages.config..." 51 | curl -Lsfo "$TOOLS_DIR/packages.config" https://cakebuild.net/download/bootstrapper/packages 52 | if [ $? -ne 0 ]; then 53 | echo "An error occurred while downloading packages.config." 54 | exit 1 55 | fi 56 | fi 57 | 58 | # Download NuGet if it does not exist. 59 | if [ ! -f "$NUGET_EXE" ]; then 60 | echo "Downloading NuGet..." 61 | curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe 62 | if [ $? -ne 0 ]; then 63 | echo "An error occurred while downloading nuget.exe." 64 | exit 1 65 | fi 66 | fi 67 | 68 | # Restore tools from NuGet. 69 | pushd "$TOOLS_DIR" >/dev/null 70 | if [ ! -f "$PACKAGES_CONFIG_MD5" ] || [ "$( cat "$PACKAGES_CONFIG_MD5" | sed 's/\r$//' )" != "$( $MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' )" ]; then 71 | find . -type d ! -name . ! -name 'Cake.Bakery' | xargs rm -rf 72 | fi 73 | 74 | mono "$NUGET_EXE" install -ExcludeVersion 75 | if [ $? -ne 0 ]; then 76 | echo "Could not restore NuGet tools." 77 | exit 1 78 | fi 79 | 80 | $MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' >| "$PACKAGES_CONFIG_MD5" 81 | 82 | popd >/dev/null 83 | 84 | # Restore addins from NuGet. 85 | if [ -f "$ADDINS_PACKAGES_CONFIG" ]; then 86 | pushd "$ADDINS_DIR" >/dev/null 87 | 88 | mono "$NUGET_EXE" install -ExcludeVersion 89 | if [ $? -ne 0 ]; then 90 | echo "Could not restore NuGet addins." 91 | exit 1 92 | fi 93 | 94 | popd >/dev/null 95 | fi 96 | 97 | # Restore modules from NuGet. 98 | if [ -f "$MODULES_PACKAGES_CONFIG" ]; then 99 | pushd "$MODULES_DIR" >/dev/null 100 | 101 | mono "$NUGET_EXE" install -ExcludeVersion 102 | if [ $? -ne 0 ]; then 103 | echo "Could not restore NuGet modules." 104 | exit 1 105 | fi 106 | 107 | popd >/dev/null 108 | fi 109 | 110 | # Make sure that Cake has been installed. 111 | if [ ! -f "$CAKE_EXE" ]; then 112 | echo "Could not find Cake.exe at '$CAKE_EXE'." 113 | exit 1 114 | fi 115 | 116 | # Start Cake 117 | # TODO remove "--settings_skipverification=true" as soon as addins support latest cake version 118 | exec mono "$CAKE_EXE" $SCRIPT "${CAKE_ARGUMENTS[@]}" --settings_skipverification=true 119 | -------------------------------------------------------------------------------- /cake.config: -------------------------------------------------------------------------------- 1 | [NuGet] 2 | Source=https://api.nuget.org/v3/index.json 3 | 4 | -------------------------------------------------------------------------------- /git-release.cake: -------------------------------------------------------------------------------- 1 | // NOTE: This cannot be run from a Mac. 2 | 3 | #addin nuget:?package=Cake.FileHelpers 4 | #addin nuget:?package=Cake.Git 5 | #tool "nuget:?package=gitreleasemanager" 6 | 7 | // Task TARGET for build 8 | var TARGET = Argument("target", Argument("t", "Default")); 9 | Task("Default").IsDependentOn("GitRelease"); 10 | 11 | // Create a tag and release on GitHub 12 | Task("GitRelease") 13 | .Does(() => 14 | { 15 | var specFilePath = GetFiles("UnityPackageSpecs/*.unitypackagespec").First().ToString(); 16 | var publishVersion = XmlPeek(specFilePath, "package/@version"); 17 | 18 | var username = "user"; 19 | var password = Argument("GithubToken"); 20 | var owner = "microsoft"; 21 | var repo = "AppCenter-SDK-Unity-Extension"; 22 | 23 | // Build a string containing paths to NuGet packages 24 | var files = GetFiles("output/*.unitypackage"); 25 | var assets = new List(); 26 | Information("Releasing packages:"); 27 | foreach (var file in files) 28 | { 29 | Information(file.FullPath); 30 | assets.Add(file.FullPath); 31 | } 32 | GitReleaseManagerCreate(username, password, owner, repo, new GitReleaseManagerCreateSettings 33 | { 34 | Prerelease = false, 35 | Assets = string.Join(",", assets), 36 | TargetCommitish = "develop", 37 | InputFilePath = new FilePath("RELEASE.md"), 38 | Name = publishVersion 39 | }); 40 | // GitReleaseManagerPublish(username, password, owner, repo, publishVersion); 41 | }); 42 | 43 | RunTarget(TARGET); 44 | -------------------------------------------------------------------------------- /test-cloud-execution-pipeline/.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @microsoft/appcenter-fte 2 | -------------------------------------------------------------------------------- /tools/Addins/Cake.AzureStorage.0.14.0/Cake.AzureStorage.0.14.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Addins/Cake.AzureStorage.0.14.0/Cake.AzureStorage.0.14.0.nupkg -------------------------------------------------------------------------------- /tools/Addins/Cake.AzureStorage.0.14.0/Cake.AzureStorage.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Cake.AzureStorage 5 | 0.14.0 6 | Cake.AzureStorage 7 | Radio Systems Corporation 8 | Radio Systems Corporation 9 | false 10 | https://github.com/RadioSystems/Cake.AzureStorage/blob/master/LICENSE.md 11 | https://github.com/RadioSystems/Cake.AzureStorage 12 | https://cdn.rawgit.com/cake-contrib/graphics/a5cf0f881c390650144b2243ae551d5b9f836196/png/cake-contrib-medium.png 13 | Cake Addin for working with Azure Storage. 14 | Copyright (c) Radio Systems Corporation 2017 - Present 15 | Azure Storage Cake 16 | 17 | -------------------------------------------------------------------------------- /tools/Addins/Cake.AzureStorage.0.14.0/lib/net46/Cake.AzureStorage.XML: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Cake.AzureStorage 5 | 6 | 7 | 8 | 9 | Azure Storage Client for Cake. 10 | 11 | 12 | 13 | 14 | Uploads file to an Azure blob storage account. 15 | 16 | Azure Storage Settings 17 | File to upload to blob storage. 18 | 19 | 20 | 21 | Deletes an Azure blob from Azure Storage 22 | 23 | Azure Storage Settings 24 | 25 | 26 | 27 | Deletes an Azure blob from Azure Storage using a prefix to determine which blobs to delete, prefix = BlobName 28 | 29 | Azure Storage Settings 30 | 31 | 32 | 33 | Contains functionality for workign with Azure Storage 34 | 35 | 36 | 37 | 38 | Uploads a file to Azure Blob Storage. 39 | 40 | 41 | 42 | Task("PackageNoSettings") 43 | .Does(() => { 44 | var settings = new AzureStorageSettings(); 45 | settings.AccountName = "AccountName"; 46 | settings.Key = "API KEY"; 47 | settings.ContainerName = "ContainerName"; 48 | settings.BlobName = "BlobName"; 49 | UploadFileToBlob(settings, GetFile("./path/to/file/to/upload")); 50 | }); 51 | 52 | 53 | The context. 54 | Azure Storage Settings. 55 | File to upload to Azure storage. 56 | 57 | 58 | 59 | Deletes an Azure Storage blob 60 | 61 | 62 | 63 | Task("PackageAfterDelete") 64 | .Does(() => { 65 | var settings = new AzureStorageSettings(); 66 | settings.AccountName = "AccountName"; 67 | settings.Key = "API KEY"; 68 | settings.ContainerName = "ContainerName"; 69 | settings.BlobName = "NameToDelete"; 70 | DeleteBlob(settings); 71 | 72 | settings.BlobName = "NameToUploadAs"; 73 | var filePath = new FilePath("./location/of/file/to/upload"); 74 | UploadFileToBlob(settings, filePath)); 75 | }); 76 | 77 | 78 | The context. 79 | Azure Storage Settings. 80 | 81 | 82 | 83 | Deletes an Azure Storage blobs by prefix. 84 | 85 | 86 | 87 | Task("PackageAfterDelete") 88 | .Does(() => { 89 | var settings = new AzureStorageSettings(); 90 | settings.AccountName = "AccountName"; 91 | settings.Key = "API KEY"; 92 | settings.ContainerName = "ContainerName"; 93 | settings.BlobName = "PrefixToSearchBy"; 94 | 95 | var deletedLog = DeleteBlobsByPrefix(settings); 96 | foreach (var line in deletedLog){ 97 | Information(line); 98 | } 99 | 100 | settings.BlobName = "NameToUploadAs"; 101 | var filePath = new FilePath("./location/of/file/to/upload"); 102 | UploadFileToBlob(settings, filePath)); 103 | }); 104 | 105 | 106 | The context. 107 | Azure Storage Settings. 108 | 109 | 110 | 111 | 112 | Initializes a new instance of the class. 113 | 114 | 115 | 116 | 117 | Gets or sets the Use Local Emulator option. 118 | 119 | 120 | 121 | 122 | Gets or sets the Azure account name. 123 | 124 | 125 | 126 | 127 | Gets or sets the Azure API Key. 128 | 129 | 130 | 131 | 132 | Gets or sets the Azure container name. 133 | 134 | 135 | 136 | 137 | Gets or sets the Azure blob name. 138 | 139 | 140 | 141 | 142 | Gets or sets wethere to use HTTPS or not, 143 | 144 | 145 | true to use HTTPS, default; otherwise, false. 146 | 147 | 148 | 149 | 150 | Gets or sets the content type property of the blob, 151 | 152 | 153 | set to content type if desired, examples: video/mp4, image/jpeg, application/json 154 | 155 | 156 | 157 | 158 | The constructor. 159 | 160 | 161 | 162 | 163 | -------------------------------------------------------------------------------- /tools/Addins/Cake.AzureStorage.0.14.0/lib/net46/Cake.AzureStorage.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Addins/Cake.AzureStorage.0.14.0/lib/net46/Cake.AzureStorage.dll -------------------------------------------------------------------------------- /tools/Addins/Cake.FileHelpers.3.1.0/.signature.p7s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Addins/Cake.FileHelpers.3.1.0/.signature.p7s -------------------------------------------------------------------------------- /tools/Addins/Cake.FileHelpers.3.1.0/Cake.FileHelpers.3.1.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Addins/Cake.FileHelpers.3.1.0/Cake.FileHelpers.3.1.0.nupkg -------------------------------------------------------------------------------- /tools/Addins/Cake.FileHelpers.3.1.0/Cake.FileHelpers.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Cake.FileHelpers 5 | 3.1.0 6 | Cake.FileHelpers 7 | Redth 8 | Redth 9 | false 10 | https://raw.githubusercontent.com/cake-contrib/Cake.FileHelpers/master/LICENSE.md 11 | https://github.com/cake-contrib/Cake.FileHelpers 12 | https://raw.githubusercontent.com/cake-contrib/Cake.FileHelpers/master/icon.png 13 | Cake Build addon to provide Aliases for common File operations (Reading, Writing, Replacing Text). 14 | Cake Script Build 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /tools/Addins/Cake.FileHelpers.3.1.0/lib/net46/Cake.FileHelpers.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Addins/Cake.FileHelpers.3.1.0/lib/net46/Cake.FileHelpers.dll -------------------------------------------------------------------------------- /tools/Addins/Cake.FileHelpers.3.1.0/lib/netstandard2.0/Cake.FileHelpers.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Addins/Cake.FileHelpers.3.1.0/lib/netstandard2.0/Cake.FileHelpers.dll -------------------------------------------------------------------------------- /tools/Addins/NuGet.Core.2.14.0/NuGet.Core.2.14.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Addins/NuGet.Core.2.14.0/NuGet.Core.2.14.0.nupkg -------------------------------------------------------------------------------- /tools/Addins/NuGet.Core.2.14.0/NuGet.Core.nuspec: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | NuGet.Core 5 | 2.14.0 6 | Outercurve Foundation 7 | Microsoft Corporation 8 | https://raw.githubusercontent.com/NuGet/NuGet2/master/LICENSE.txt 9 | https://github.com/NuGet/NuGet2 10 | false 11 | NuGet.Core is the core framework assembly for NuGet that the rest of NuGet builds upon. 12 | © Microsoft Corporation. All rights reserved. 13 | nuget 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /tools/Addins/NuGet.Core.2.14.0/lib/net40-Client/NuGet.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Addins/NuGet.Core.2.14.0/lib/net40-Client/NuGet.Core.dll -------------------------------------------------------------------------------- /tools/Cake/.signature.p7s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/.signature.p7s -------------------------------------------------------------------------------- /tools/Cake/Autofac.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Autofac.dll -------------------------------------------------------------------------------- /tools/Cake/Cake.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Cake.Common.dll -------------------------------------------------------------------------------- /tools/Cake/Cake.Common.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Cake.Common.pdb -------------------------------------------------------------------------------- /tools/Cake/Cake.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Cake.Core.dll -------------------------------------------------------------------------------- /tools/Cake/Cake.Core.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Cake.Core.pdb -------------------------------------------------------------------------------- /tools/Cake/Cake.NuGet.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Cake.NuGet.dll -------------------------------------------------------------------------------- /tools/Cake/Cake.NuGet.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Cake.NuGet.pdb -------------------------------------------------------------------------------- /tools/Cake/Cake.NuGet.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Cake.NuGet 5 | 6 | 7 | 8 | 9 | The config key name for overriding the default nuget package source 10 | 11 | 12 | 13 | 14 | The config key name for using the in process client for installing packages 15 | 16 | 17 | 18 | 19 | The config key name for enabling loading of nuget package dependencies 20 | 21 | 22 | 23 | 24 | The config key name for overriding the default nuget config file 25 | 26 | 27 | 28 | 29 | Initializes a new instance of the class. 30 | 31 | The file system. 32 | The environment. 33 | The content resolver. 34 | The log. 35 | the configuration 36 | 37 | 38 | 39 | Represents a file locator for NuGet packages that returns relevant 40 | files for the current framework given the resource type. 41 | 42 | 43 | 44 | 45 | Gets the relevant files for a NuGet package 46 | given a path and a resource type. 47 | 48 | The path to search. 49 | The package. 50 | The resource type. 51 | A collection of files. 52 | 53 | 54 | 55 | Represents a NuGet package installer. 56 | 57 | 58 | 59 | 60 | The module responsible for registering 61 | default types in the Cake.NuGet assembly. 62 | 63 | 64 | 65 | 66 | Initializes a new instance of the class. 67 | 68 | The config. 69 | 70 | 71 | 72 | Performs custom registrations in the provided registrar. 73 | 74 | The container registrar. 75 | 76 | 77 | 78 | Installer for NuGet URI resources. 79 | 80 | 81 | 82 | 83 | Initializes a new instance of the class. 84 | 85 | The file system. 86 | The environment. 87 | The process runner. 88 | The NuGet tool resolver. 89 | The content resolver. 90 | The log. 91 | The configuration. 92 | 93 | 94 | 95 | Determines whether this instance can install the specified resource. 96 | 97 | The package reference. 98 | The package type. 99 | 100 | true if this installer can install the 101 | specified resource; otherwise false. 102 | 103 | 104 | 105 | 106 | Installs the specified resource at the given location. 107 | 108 | The package reference. 109 | The package type. 110 | The location where to install the package. 111 | The installed files. 112 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /tools/Cake/Cake.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Cake.exe -------------------------------------------------------------------------------- /tools/Cake/Cake.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /tools/Cake/Cake.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Cake.nupkg -------------------------------------------------------------------------------- /tools/Cake/Cake.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Cake.pdb -------------------------------------------------------------------------------- /tools/Cake/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) .NET Foundation and Contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /tools/Cake/Microsoft.CodeAnalysis.CSharp.Scripting.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Microsoft.CodeAnalysis.CSharp.Scripting.dll -------------------------------------------------------------------------------- /tools/Cake/Microsoft.CodeAnalysis.CSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Microsoft.CodeAnalysis.CSharp.dll -------------------------------------------------------------------------------- /tools/Cake/Microsoft.CodeAnalysis.Scripting.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Microsoft.CodeAnalysis.Scripting.dll -------------------------------------------------------------------------------- /tools/Cake/Microsoft.CodeAnalysis.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Microsoft.CodeAnalysis.dll -------------------------------------------------------------------------------- /tools/Cake/Microsoft.Web.XmlTransform.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Microsoft.Web.XmlTransform.dll -------------------------------------------------------------------------------- /tools/Cake/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Commands.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.Commands.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Common.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.Common.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Configuration.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.Configuration.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Credentials.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.Credentials.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.DependencyResolver.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.DependencyResolver.Core.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Frameworks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.Frameworks.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.LibraryModel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.LibraryModel.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.PackageManagement.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.PackageManagement.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Packaging.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.Packaging.Core.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Packaging.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.Packaging.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.ProjectModel.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.ProjectModel.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Protocol.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.Protocol.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Resolver.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.Resolver.dll -------------------------------------------------------------------------------- /tools/Cake/NuGet.Versioning.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/NuGet.Versioning.dll -------------------------------------------------------------------------------- /tools/Cake/System.AppContext.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.AppContext.dll -------------------------------------------------------------------------------- /tools/Cake/System.Collections.Immutable.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Collections.Immutable.dll -------------------------------------------------------------------------------- /tools/Cake/System.Console.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Console.dll -------------------------------------------------------------------------------- /tools/Cake/System.Diagnostics.FileVersionInfo.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Diagnostics.FileVersionInfo.dll -------------------------------------------------------------------------------- /tools/Cake/System.Diagnostics.StackTrace.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Diagnostics.StackTrace.dll -------------------------------------------------------------------------------- /tools/Cake/System.IO.Compression.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.IO.Compression.dll -------------------------------------------------------------------------------- /tools/Cake/System.IO.FileSystem.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.IO.FileSystem.Primitives.dll -------------------------------------------------------------------------------- /tools/Cake/System.IO.FileSystem.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.IO.FileSystem.dll -------------------------------------------------------------------------------- /tools/Cake/System.Reflection.Metadata.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Reflection.Metadata.dll -------------------------------------------------------------------------------- /tools/Cake/System.Security.Cryptography.Algorithms.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Security.Cryptography.Algorithms.dll -------------------------------------------------------------------------------- /tools/Cake/System.Security.Cryptography.Encoding.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Security.Cryptography.Encoding.dll -------------------------------------------------------------------------------- /tools/Cake/System.Security.Cryptography.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Security.Cryptography.Primitives.dll -------------------------------------------------------------------------------- /tools/Cake/System.Security.Cryptography.X509Certificates.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Security.Cryptography.X509Certificates.dll -------------------------------------------------------------------------------- /tools/Cake/System.Text.Encoding.CodePages.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Text.Encoding.CodePages.dll -------------------------------------------------------------------------------- /tools/Cake/System.Threading.Thread.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Threading.Thread.dll -------------------------------------------------------------------------------- /tools/Cake/System.ValueTuple.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.ValueTuple.dll -------------------------------------------------------------------------------- /tools/Cake/System.Xml.ReaderWriter.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Xml.ReaderWriter.dll -------------------------------------------------------------------------------- /tools/Cake/System.Xml.XPath.XDocument.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Xml.XPath.XDocument.dll -------------------------------------------------------------------------------- /tools/Cake/System.Xml.XPath.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Xml.XPath.dll -------------------------------------------------------------------------------- /tools/Cake/System.Xml.XmlDocument.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/Cake/System.Xml.XmlDocument.dll -------------------------------------------------------------------------------- /tools/nuget.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/AppCenter-SDK-Unity-Extension/85b8d7f64571bc7ec162d87daa58ed93c38d4f33/tools/nuget.exe -------------------------------------------------------------------------------- /tools/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /tools/packages.config.md5sum: -------------------------------------------------------------------------------- 1 | 93-EC-52-0D-C7-2C-94-A3-4C-22-A0-B5-7C-21-FB-1D 2 | -------------------------------------------------------------------------------- /utility.cake: -------------------------------------------------------------------------------- 1 | // This file contains various utilities that are or can be used by multiple cake scripts. 2 | 3 | // Static variables defined outside of a class can cause issues. 4 | public class Statics 5 | { 6 | // Cake context. 7 | public static ICakeContext Context { get; set; } 8 | 9 | // Prefix for temporary intermediates that are created by this script. 10 | public const string TemporaryPrefix = "CAKE_SCRIPT_TEMP"; 11 | } 12 | 13 | // Can't reference Context within the class, so set value outside 14 | Statics.Context = Context; 15 | 16 | static int ExecuteUnityCommand(string extraArgs, string projectPath = ".") 17 | { 18 | var projectDir = projectPath == null ? null : Statics.Context.MakeAbsolute(Statics.Context.Directory(projectPath)); 19 | var unityPath = Statics.Context.EnvironmentVariable("UNITY_PATH"); 20 | 21 | // If environment variable is not set, use default locations 22 | if (unityPath == null) 23 | { 24 | if (Statics.Context.IsRunningOnUnix()) 25 | { 26 | unityPath = "/Applications/Unity/Unity.app/Contents/MacOS/Unity"; 27 | } 28 | else 29 | { 30 | unityPath = "C:\\Program Files\\Unity\\Editor\\Unity.exe"; 31 | } 32 | } 33 | 34 | // Unity log file 35 | var unityLogFile = "CAKE_SCRIPT_TEMPunity_build_log.log"; 36 | if (System.IO.File.Exists(unityLogFile)) 37 | { 38 | unityLogFile += "1"; 39 | } 40 | var unityArgs = "-batchmode -quit -logFile " + unityLogFile; 41 | 42 | // If the command has an associated project, add it to the arguments 43 | if (projectDir != null) 44 | { 45 | unityArgs += " -projectPath " + projectDir; 46 | } 47 | 48 | unityArgs += " " + extraArgs; 49 | 50 | System.IO.File.Create(unityLogFile).Dispose(); 51 | var logExec = "powershell.exe"; 52 | var logArgs = "Get-Content -Path " + unityLogFile + " -Wait"; 53 | if (Statics.Context.IsRunningOnUnix()) 54 | { 55 | logExec = "tail"; 56 | logArgs = "-f " + unityLogFile; 57 | } 58 | int result = 0; 59 | using (var unityProcess = Statics.Context.StartAndReturnProcess(unityPath, new ProcessSettings{ Arguments = unityArgs })) 60 | { 61 | using (var logProcess = Statics.Context.StartAndReturnProcess(logExec, new ProcessSettings{ Arguments = logArgs, RedirectStandardError = true})) 62 | { 63 | unityProcess.WaitForExit(); 64 | result = unityProcess.GetExitCode(); 65 | if (logProcess.WaitForExit(0) && (logProcess.GetExitCode() != 0)) 66 | { 67 | Statics.Context.Warning("There was an error logging, but command still executed."); 68 | } 69 | else 70 | { 71 | try 72 | { 73 | logProcess.Kill(); 74 | } 75 | catch 76 | { 77 | // Log process was stopped right after checking 78 | } 79 | } 80 | } 81 | } 82 | DeleteFileIfExists(unityLogFile); 83 | return result; 84 | } 85 | 86 | static void DeleteDirectoryIfExists(string directoryName) 87 | { 88 | if (Statics.Context.DirectoryExists(directoryName)) 89 | { 90 | Statics.Context.DeleteDirectory(directoryName, new DeleteDirectorySettings() { Recursive = true }); 91 | } 92 | } 93 | 94 | static void DeleteFileIfExists(string fileName) 95 | { 96 | try 97 | { 98 | if (Statics.Context.FileExists(fileName)) 99 | { 100 | Statics.Context.DeleteFile(fileName); 101 | } 102 | } 103 | catch 104 | { 105 | Statics.Context.Information("Unable to delete file '" + fileName + "'."); 106 | } 107 | } 108 | 109 | 110 | static void CleanDirectory(string directoryName) 111 | { 112 | DeleteDirectoryIfExists(directoryName); 113 | Statics.Context.CreateDirectory(directoryName); 114 | } 115 | 116 | void HandleError(Exception exception) 117 | { 118 | RunTarget("clean"); 119 | throw new Exception("Error occurred, see inner exception for details", exception); 120 | } 121 | 122 | // Remove all temporary files and folders 123 | Task("RemoveTemporaries").Does(()=> 124 | { 125 | DeleteFiles(Statics.TemporaryPrefix + "*"); 126 | var dirs = GetDirectories(Statics.TemporaryPrefix + "*"); 127 | foreach (var directory in dirs) 128 | { 129 | DeleteDirectory(directory, new DeleteDirectorySettings() { Recursive = true }); 130 | } 131 | }); 132 | --------------------------------------------------------------------------------