UNPKG

com.ubisoft.hotel.core

Version:

Core features and utilities shared across Hotel packages.

633 lines (473 loc) 20.4 kB
# Changelog All notable changes to this project will be documented in this file. More information [here](https://confluence.ubisoft.com/x/6j56Q) The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] # [0.10.9] - 2023-02-21 ### Added - Package: Add support to deploy asset bundles to Ubisoft Cloud organised by platform and game version. # [0.10.8] - 2023-02-17 ### Fixed - Package: Fix an issue that prevents Android builds from being signed automatically. # [0.10.7] - 2023-02-15 ### Added - Package: Allow consumers to define the Vault id that stores keystore and keyalias passwords to use to sign Android builds. # [0.10.6] - 2023-02-13 ### Added - Addressables: Add support to upload remote asset bundles to Ubisoft Cloud. # [0.10.5] - 2023-02-09 ### Fixed - Cache: Fix a crash when no cache settings are provided for a driver. # [0.10.4] - 2023-02-03 ### Fixed - Package: Fix an issue when mocking StandAlone platform from hotel settings. # [0.10.3] - 2023-02-02 ### Fixed - Package: Fix an issue that prevented from building for Android. # [0.10.2] - 2023-02-02 ### Fixed - Package: Fix an issue that prevented from building for iOS. # [0.10.1] - 2023-02-01 ### Fixed - Package: Fix an issue that prevented from building for StandAlone. # [0.10.0] - 2023-01-31 ### Added - Package: Add support for Amazon platform. # [0.9.4] - 2023-01-30 ### Fixed - Package: Patch FRAMEWORK_SEARCH_PATHS and LD_RUNPATH_SEARCH_PATHS to make sure Pods frameworks can be linked, which we found out that wouldn't happen when Orion MonetisationCore package is included in the app's manifest.json # [0.9.3] - 2023-01-18 ### Added - Addressables: Add a constant for the remote asset bundles path. # [0.9.2] - 2023-01-13 ### Added - Addressables: Rename HT_ADDRESSABLES_DAD_ON for HT_ADDRESSABLES_STORE_CDN_ON. # [0.9.1] - 2023-01-13 ### Added - PlayerPrefs: Add a dummy implementation for those systems that don't care about IHtPlayerPrefs. # [0.9.0] - 2023-01-02 ### Added - UnityEditor: Add support for editing assembly definitions. - Device: Add support for mocking networking capabilities. ### Fixed - UnityEngine: Fix an issue that attempted to create 'HtSingletonHolder' twice. - DotNet: Fix an issue that didn't handle the director separator char correctly on all platforms. # [0.8.14] - 2022-12-16 ### Fixed - Cache: Metadata file for filtered files not being stored with the right name # [0.8.13] - 2022-12-13 ### Fixed - UnityEditor: Fix an issue preventing 'CreateFolder()' from creating the path required when some folders in the path don't exist. ### Added - DotNet: Add a method to create a directory. - Addressables: Add support for Hotel Addressables which allows consumers to tailor Unity Addressables experience. ### Changed - Package: Use 'EditorUserBuildSettings.standaloneBuildSubtarget' instead of the deprecated 'EditorUserBuildSettings.enableHeadlessMode' on Unity 2021. # [0.8.12] - 2022-08-11 ### Added - Cache: Add support for calling Init method multiple times # [0.8.11] - 2022-08-10 ### Fixed - Package: Fix an issue that prevented some Unity settings from being applied properly. # [0.8.10] - 2022-07-27 ### Fixed - Package: Fix an issue that prevented the right bundle id to be used when configuring Firebase. # [0.8.9] - 2022-07-25 ### Added - Package: Add support to customize whether to deploy symbols using a UnityBuildProperty. # [0.8.8] - 2022-07-21 ### Added - Package: Add support for generating Android symbols using a UnityBuildProperty. # [0.8.7] - 2022-07-20 ### Added - PlayerPrefs: Add support for HtPlayerPrefs_Unity_Cached, an implementation that allows using Unity's PlayerPrefs from non-main threads. # [0.8.6] - 2022-07-18 ### Added - Package: Add support to add stuff to base build.gradle. ### Changed - Package: Refactor the way Firebase Android dependencies are handled. # [0.8.5] - 2022-07-14 ### Added - Package: Add support to encode the branch name of a 'PipelineJob' object so it can be used as part of a build file name so it can be copied around with no trouble. # [0.8.4] - 2022-07-14 ### Changed - Add "com.ubisoft.hotel.unitask" as a dependency (Required by Storage manager in Device package). # [0.8.3] - 2022-07-12 ### Added - Cache: New module to handle cache files ### Changed - Device: Storage manager can now be used from secondary threads # [0.8.2] - 2022-07-08 ### Fixed - Package: Fix an issue that prevented Firebase manifest from being generated. # [0.8.1] - 2022-07-08 ### Fixed - Package: Fix an issue that prevented Firebase manifest from being generated. # [0.8.0] - 2022-07-08 ### Changed - Package: Refactor the way Firebase is supported. # [0.7.1] - 2022-07-08 ### Changed - Package: Refactor the way the pipeline job information is stored. # [0.7.0] - 2022-07-05 ### Added - Package: Add support to include pipeline job information (branch name and build number) in the build. # [0.6.4] - 2022-06-21 ### Fixed - Package: Fix an issue that printed an error when HT Crashlytics package is not installed. # [0.6.3] - 2022-06-21 ### Fixed - Package: Fix an issue that prevented Firebase manifest from being generated. # [0.6.2] - 2022-06-17 ### Fixed - Device: Fix an issue that prevented NativeDeviceIOS from compiling in non iOS platforms in Unity 2021. # [0.6.1] - 2022-06-08 ### Fixed - Fix an issue that prevented HtSingletonHolder from getting destroyed properly when used in editor mode. # [0.6.0] - 2022-06-07 ### Added - Package: Add 'SocialCoreBuildProperty' property to ease Orion SocialCore.PlayGames package configuration. # [0.5.12] - 2022-06-03 ### Fixed - Runtime: Fix an issue that prevented HtSingletonHolder from getting destroyed properly when the app was closed. # [0.5.11] - 2022-06-02 ### Fixed - Fix an issue that made WRITE_EXTERNAL_STORAGE and READ_PHONE_STATE Android permissions be added to AndroidManifest.xml although they are not required. # [0.5.10] - 2022-05-27 ### Added - Add some debug information when running a macOS command. # [0.5.9] - 2022-05-25 ### Fixed - Fix compilation error on Windows caused by missing ValidateRawProperty method # [0.5.8] - 2022-05-25 ### Added - Package: Add support to define nested dictionary/array Info plist properties. ### Fixed - Device: Fix an issue that caused an Exception when finding out if an Android installation was legit upon installing via adb. # [0.5.7] - 2022-05-23 ### Added - Device: Add support to find out whether or not the build is legit (downloaded from the store). # [0.5.6] - 2022-05-20 ### Changed - Modify the way Android signing is handled. # [0.5.5] - 2022-05-19 ### Changed - Protect some accesses to avoid NullPointerExceptions. - Make sure Firebase manifest is created, when required, upon applying a suite. # [0.5.4] - 2022-05-16 ### Fixed - Fix an issue that prevented Hotel from singing Android builds. # [0.5.3] - 2022-05-16 ### Added - Add support for signing Android builds via code. # [0.5.2] - 2022-05-05 ### Fixed - Fix a bug when using Firebase that prevented some dependencies from being included when building for Android. ## [0.5.1] - 2022-04-25 ### Changed - Update pluggable packages version to 0.5.0. ## [0.5.0] - 2022-04-25 ### Added - PlayerPrefs: Add support for HtPlayerPrefs_Memory. ### Changed - Publish to npm-ubisoft repository. ## [0.3.6] - 2022-04-14 ### Added - Package: Add "Assets/Editor Default Resources/CrashlyticsSettings.asset" to .gitignore. ## [0.3.5] - 2022-04-11 ### Fixed - Package: Fix an issue that arose an exception when initialising PackageManagerHelper. ## [0.3.4] - 2022-04-11 ### Fixed - Package: Refactor suites to ease maintenance and to speed up performance. ## [0.3.3] - 2022-04-08 ### Fixed - Package: Fix an IO exception when copying Firebase build.gradle over the App space. ## [0.3.2] - 2022-04-08 ### BREAKING CHANGES - PlayerPrefs: Rename DeleteAll() to DeleteAllPlayerPrefs() and Save() to SaveAllPlayerPrefs() in HtPlayerPrefsService.cs for consistency. ### Added - Package: Add support to define Firebase Android dependencies. ## [0.3.1] - 2022-04-05 ### Fixed - Package: Fix a compilation error. ## [0.3.0] - 2022-04-05 ### Added - Package: Add support to put Verbatim stuff inside modules besides in the root of the package. - DotNet: Add support to create all inexistent folders in a destination path when copying a file. ## [0.2.11] - 2022-04-04 ### Added - Device: SRDebugger cheat to request Advertsing Info - Device: New method to open the app in the store - Device: SRDebugger cheat to open the app in the store ## [0.2.10] - 2022-04-04 ### Added - Support for HtPlayerPrefs - PlayerPrefs sample scene - UnityEngine: New method to destroy a component that was created through HtSingletonHolder ### Fixed - UnityEditor: NullPointer when asset database returns null objects ## [0.2.9] - 2022-03-30 ### Fixed - Logger: Fix a compilation error because ZLogger wasn't implementing LogException() method. ## [0.2.8] - 2022-03-29 ### Added - UnityEngine: Add support for Debug.LogException(). ## [0.2.7] - 2022-03-29 ### Fixed - Package: Fix an issue that threw an error when building without Hotel PackageManager package. ### Added - Device: Enable AndroidX option, which is required by the function that retrieves the device marketing id, automatically. ## [0.2.6] - 2022-03-25 ### Fixed - Add missing Android dependency needed to retrieve Advertising ID ## [0.2.5] - 2022-03-23 ### Added - Device: Add method to retrieve Advertising ID ## [0.2.4] - 2022-03-21 ### Added - UnityEngine: Add methods to stop a coroutine. ## [0.2.3] - 2022-03-15 ### Added - Package: Add 'Assets/Hotel/GitIgnored' to .gitignore. ## [0.2.2] - 2022-03-09 ### Added - Package: Add support to add paths to .gitignore from an AssetBuildProperty. - Package: Add FirebaseBuildProperty to ease Firebase setup. - UnityEditor: Add a utility to delete an asset or folder easily. ## [0.2.1] - 2022-03-02 ### Fixed - UnityEngine: Fix a crash on device when creating the object that holds all singletons. ## [0.2.0] - 2022-02-28 ### Changed - UnityEngine: Change the way singletons are registered so they can be destroyed easily. ## [0.1.7] - 2022-02-22 ### Changed - Package: Simplify the way that pluggable packages are handled. ## [0.1.6] - 2022-02-16 ### Changed - Package: Non pluggable packages are listed on top of manifest.json dependencies section. ## [0.1.5] - 2022-02-14 ### Changed - Package: Define define symbols in PlayerSettings instead of in csc.rsp. ## [0.1.4] - 2022-02-08 ### Changed - Remove a workaround to use Unity logger instead of ZLogger when playing in Editor because it may lead to crashes when the very first log is triggered from a constructor. ## [0.1.3] - 2022-02-08 ### Added - Package: Allow consumers to define any root path for the source file/folder to copy/link over when using AssetBuildProperty. ### Changed - Package: Refactor the way that packages define their properties so they are defined by code instead of by using a ScriptableObject. ## [0.1.2] - 2022-01-10 ### Added - Package: Add support for copying Runtime stuff verbatim from package space to app space. ## [0.1.1] - 2022-01-03 ### Added - Package: Add support for copying Editor stuff verbatim from package space to app space. ## [0.1.0] - 2022-01-03 ### Added - Package: Add support for native localised texts, typically for localising app name and permissions. - Package: Add support for native Android settings. ## [0.0.56] - 2021-12-20 ### Changed - UnityEditor: Make csc.rsp path public so it can be added to .gitignore by Hotel PackageManager. ## [0.0.55] - 2021-12-20 ### Fixed - UnityEditor: Fix an issue that considered an empty string as a symbol to process. ## [0.0.54] - 2021-12-17 ### Fixed -UnityEditor: Fix a NullPointerException when no csc.rsp file was present in the project. ## [0.0.53] - 2021-12-03 ### Added - UnityEditor: Add support to use csc.rsp (https://docs.unity3d.com/Manual/PlatformDependentCompilation.html#:~:text=Global%20custom%20%23-,defines,-You%20can%20define) ### Refactor - Package: Define symbols by using csc.rsp instead of defining them in ProjectSettings to avoid consumers from committing them. ## [0.0.52] - 2021-11-24 ### Added - Logger: Add support for channels preset, which allow consumers to enable/disable channels when playing in Unity Editor. - UnityEditor: Add base class for writing custom inspectors. ### Fixed - Logger: Fix an issue that prevented some logs from being printed in editor mode. ## [0.0.51] - 2021-09-08 ### Added - Package: Add StreamingAssets/Hotel path ## [0.0.50] - 2021-09-08 ### Added - DotNet: Add an extension to implement IndexOf for IReadOnlyList<T> types. ## [0.0.49] - 2021-09-30 ### Added - UnityEgine: Add support to enqueue calls to functions that need to run in the main thread from a worker thread. - Package: Add support to let properties of the current suite copy stuff over to Resources folder. ## [0.0.48] - 2021-09-23 ### Added Add support to customise behaviour for a package upon installation or update. ## [0.0.47] - 2021-08-31 - Package: Fix an issue preventing 'Release version' script from working on Mac. ## [0.0.46] - 2021-08-30 - UnityEditor: Add support to run git commands. ## [0.0.45] - 2021-08-30 - Package: Generate a file that contains Unity Editor path and another that contains project root path so they can be used by tools that need to execute a Unity method from command line. - DotNet: Revert 0.0.44 workaround. ## [0.0.44] - 2021-08-13 ### Workaround - DotNet: Add a class required by Fight, which still uses NetworkManager below 0.0.65. This workaround will be fixed once Fight updates to NetworkManager 0.0.65 or higher. ## [0.0.43] - 2021-08-11 ### Fixed - Fix an issue preventing the user from being able to apply a suite after having run a suite previously - Fix an issue that made it impossible to disable bitcode on iOS builds ## [0.0.42] - 2021-08-10 ### Fixed - Fix an issue preventing transitive dependencies from being applied ## [0.0.41] - 2021-08-09 ### Added - Package: Add support to simulate PackageManager behaviour when this package is not installed ## [0.0.40] - 2021-08-06 ### Fixed - UnityEditor: Fix an issue preventing a folder from being copied properly when it contained any folders ## [0.0.39] - 2021-08-04 ### Fixed - UnityEditor: Fix a compilation error - UnityEngine: Fix a compilation error ## [0.0.38] - 2021-08-03 ### Fixed - Package: Fix an issue when moving data from Hotel/Assets over Assets ## [0.0.37] - 2021-08-02 ### Added - Package: Add support to create symbolic links between Hotel/Assets and Assets - Package: Add support to Plugins - Package: Add support to Tools ### Changed - Change namespaces and some classes names to make them easier to find for consumers ## [0.0.36] - 2021-07-20 ### Added - Package: Add support for a basic view for PackageSuiteEditor - UnityEngine: Add support for editor logging which never gets stripped out, typically only for editor tools. ## [0.0.35] - 2021-07-12 ### Added - DotNet: Add support for HtLong ### Changed - DotNet: Change HtBool.Parse to only support the following string values: "true", "True", "TRUE", "1", "false", "False", "FALSE", "0" ## [0.0.34] - 2021-07-07 ### Added - Package: Add "com.unity.addressables" to the list of packages that produce a define symbol (HT_PACKAGES_ADDRESSABLES) ## [0.0.33] - 2021-07-06 ### Added - DotNet: Add utilities to handle bool, byte, float, double, int, short and string types ### Changed - DotNet: Refactor: - Rename StringUtility to HtString to unify naming convention with HtInt, HtFloat,... - Move SystemIO from Editor to Runtime to have the functionality in player too. - Correct breaking changes after the above changes. ## [0.0.32] - 2021-07-02 ### Added - Device: Added method to retrieve a file's absolute path based on its FileDescriptor ## [0.0.31] - 2021-07-02 ### Changed - Update .editorconfig - Device: Replace Debug.Log by Hotel Logger ### Breaking Changes - Device: New API supporting FileDescriptor. Encryption and Compression are ignored for now and will be supported in future versions. - Device: Improved error handling. All methods provide additional information through OperationStatus object. ## [0.0.30] - 2021-06-29 ### Fixed - Fix a compilation error when PackageManager package is not present ## [0.0.29] - 2021-06-29 ### Added - Add support for reusing the same suite regardless the platform ## [0.0.28] - 2021-06-23 ### Added - Device: Added instructions to sample scene - Logger: Added method to create Hotel channels ## [0.0.27] - 2021-06-10 ### Fixed - Added missing StreamingAssets folder to Device sample scene ## [0.0.26] - 2021-06-10 ### Added - Device utilities to handle storage - Device sample scene ## [0.0.25] - 2021-06-08 - Package: Fix an issue that made automatic symbols generated for Hotel packages (HT_PACKAGE_<package_name>) contains dashes, which messes up with preprocessor. Example: HT_PACKAGE_PROTOBUF-UNITY_PROD for com.ubisoft.hotel.protobuf-unity. Now HT_PACKAGE_PROTOBUF_UNITY_PROD is generated instead ## [0.0.24] - 2021-06-07 ### Changes - Package: Change IsDevelopmentBuild, IsConnectProfileEnabled, EnabledHeadlessMode, BuildAppBundle type (from bool to EBoolean) to avoid overriding Unity settings for these properties when the consumer doesn't mean to do that ## [0.0.23] - 2021-06-03 ### Breaking Changes - DotNet: Rename StringUtils for StringUtility to conform to naming conventions - DotNet: Remove default value of isUtf8 parameter in StringUtility,GetBytes() in order to make consumers aware of what they're doing ## [0.0.22] - 2021-06-02 ### Fixed - UnityEditor: Fix an issue when attempting to return StandardOutput from a process on Windows ## [0.0.21] - 2021-06-02 ### Fixed - UnityEditor: Fix a compilation error in OSUtility.cs on Windows ## [0.0.20] - 2021-06-02 ### Fixed - Package: Fix an issue that let Consumer set 0 as a version code, which is not allowed for Android - Package: Fix an issue preventing adding/removing packages from working properly in Unity 2020 ## [0.0.19] - 2021-05-28 ### Fixed - Package: Fix an issue that prevented former configuration from getting cleared before creating a new one ## [0.0.18] - 2021-05-28 ### Added - Package: Add support for setting apple developer team id and provisioning profile id ### Changed - Package: Prevent configuration from getting lost when a reference is missing ## [0.0.17] - 2021-05-27 ### Added - UnityEditor: Add support to delete a symbolic link ### Fixed - UnityEditor: Fix an issue preventing a folder from being deleted when it contained a symbolic link on Windows ## [0.0.16] - 2021-05-21 ### Changed - UnityEditor: Hide 'Create Folder (Relative Symlink) ' to simplify usage ## [0.0.15] - 2021-05-21 ### Added - UnityEditor: Add ViaCodeSample to SymlinkUtility ### Changed - UnityEditor: Rename StringUtils to StringUtility and SystemUtils to SystemUtility ## [0.0.14] - 2021-05-20 ### Added -Add support to create symbolic links via Unity context menu ## [0.0.13] - 2021-05-19 ### Fixed - Fix some compilation errors related to missing BuildSuite ## [0.0.12] - 2021-05-14 ### Added - Define HT_PACKAGE_CORE_PROD so other packages can know that Hotel is installed ## [0.0.11] - 2021-05-14 ### Added - Package: Move Package from its package to Core in order to ease dependency management ## [0.0.10] - 2021-05-13 ### Added - Logger: Add support for enabling logging when developing a package ## [0.0.9] - 2021-04-06 ### Added - Logger: Add support for handling listeners ## [0.0.8] - 2021-04-05 ### Added - Add support for handling symbolic links to UnityEditor extension ### Changed - Enable all logger levels in development time so Hotel packages can log stuff when tested by themselves (with no need for PackageManager installed) ## [0.0.7] - 2021-04-15 ### Changed - Rename Logger to HtLogger so it won't collide with UnityEngine.Logger ## [0.0.6] - 2021-04-14 ### Changed - Extend samples ## [0.0.5] - 2021-04-14 ### Added - LOGGER: Add support for Assert() ## [0.0.4] - 2021-04-13 ### Added - Add Logger ## [0.0.3] - 2021-03-31 ### Fixed - Make the package compatible with Unity 2020 ## [0.0.2] - 2021-03-25 ### Added - System utilities ## [0.0.1] - 2021-02-26 ### Added - Set up