{"_id":"com.unity.purchasing","name":"com.unity.purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","provider":"upm","versions":{"5.3.0":{"_upm":{"changelog":"### Added\n- Added support for [disabled domain reload](https://docs.unity3d.com/2023.2/Documentation/Manual/DomainReloading.html) in the Editor.\n- Xbox - Added integration with Xbox Store for Xbox Series, Xbox One, and Windows. Get started with [Unity GDK integration](https://learn.microsoft.com/en-us/gaming/gdk/docs/gdk-dev/pc-dev/tutorials/get-started-with-unity-pc/gdk-unity-end-to-end-guide?view=gdk-2510).\n- Project Settings allow you to access IAP AI skill with migration capabilities from v4 to v5\n\n### Fixed\n- Apple - Fixed Swift 6 strict concurrency warnings that caused build failures when `SWIFT_STRICT_CONCURRENCY` is set to `complete`.\n- Apple - Fixed `RestorePurchases`/`FetchPurchases` callback never firing on StoreKit 1 when the user has no purchase history.\n- Apple - Fixed visionOS incorrectly defaulting to StoreKit 1 instead of StoreKit 2.\n  - To continue using the previous behaviour, set `StoreKitSelector.forceStoreKit1` to `true` on visionOS.\n- Fixed `IndexOutOfRangeException` happening in the catalog editor when exporting with an empty catalog item.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.3/manual/index.html","name":"com.unity.purchasing","version":"5.3.0","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"c1f2e55dc464026be2744f925b1d45344fbc98a6","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.3.0.tgz"}},"4.15.1":{"_upm":{"changelog":"### Fixed\n- Apple - Restored visionOS platform support in iOS plugin meta files, which was accidentally removed in 4.13.0.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2020.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.15/manual/index.html","name":"com.unity.purchasing","version":"4.15.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"265595791a696a3847a8a2af7d00be39558176fc","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.15.1.tgz"}},"5.2.1":{"_upm":{"changelog":"### Fixed\n- Apple - Fixed an issue where `OnPurchaseFailed` would not trigger when re-purchasing non-consumables.\n- Apple - Fixed tvOS build failure caused by missing `tvOS 15.0` availability on the `SKPaymentTransactionObserver` extension in `PurchaseUseCase.swift`.\n- Apple - Fixed `GetProductDetails` returning an empty dictionary.\n- Google - Fixed an issue where `OnPurchasesFetchFailed` could be triggered when foregrounding the application while the store connection wasn't established.\n- Updated description of `OnPurchaseDeferred` in `IPurchaseService` and `StoreController`.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.2/manual/index.html","name":"com.unity.purchasing","version":"5.2.1","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"6b6ab99158a4c176536eb87ea458be6b8a769d74","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.2.1.tgz"}},"4.15.0":{"_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2020.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.15/manual/index.html","name":"com.unity.purchasing","version":"4.15.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"ffbc76639aabe1c6c767e71a40d4bfe952d0006f","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.15.0.tgz"}},"5.2.0":{"_upm":{"changelog":"### Added\n- Added `OnStoreConnected` callback to complement the existing `OnStoreDisconnected` callback, to provide symmetrical connection state handling.\n\n### Fixed\n- Apple - Fixed `StorefrontResponse` not being found on VisionOS.\n- Apple -`IPurchaseService.ProcessPendingOrdersOnPurchasesFetched` applies to `AppleAppStore` and `MacAppStore`.\n  - This resolves a issue on iOS 26.2+, where `OnPurchasePending` was not invoked for existing pending orders during startup.\n  - Setting `IPurchaseService.ProcessPendingOrdersOnPurchasesFetched` to `false` on Apple platforms may result in missing `OnPurchasePending` events for iOS versions 26.2+.\n- Apple - Fixed `InvalidPublicKeyException` exception being thrown when creating a `CrossPlatformValidator`.\n  - If you experienced this issue, regenerate your `AppleTangle.cs` via Services > In-app Purchasing > Configure, and selecting `Obfuscate Apple License Key`. \n- Google - Fixed purchases made while the application is backgrounded not invoking the `OnPurchasePending` when foregrounding the application.\n- Fixed `DuplicatedTransaction` happening on first time purchasing Consumables/Non-Consumables.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.2/manual/index.html","name":"com.unity.purchasing","version":"5.2.0","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"4e30f96102909725d20d9d8fa6df7f7049bc9f88","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.2.0.tgz"}},"5.2.0-pre.2":{"_upm":{"changelog":"- GooglePlay - Fixed an exception that can occur when calling `ExternalBillingProgramClient.CreateBillingProgramReportingDetailsAsync`","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.2/manual/index.html","name":"com.unity.purchasing","version":"5.2.0-pre.2","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"deded20f41930d671c00e48218036a44eefd368b","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.2.0-pre.2.tgz"}},"4.15.0-pre.2":{"_upm":{"changelog":"- GooglePlay - Fixed an exception that can occur when calling `ExternalBillingProgramClient.CreateBillingProgramReportingDetailsAsync`","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2020.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.15/manual/index.html","name":"com.unity.purchasing","version":"4.15.0-pre.2","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"592f2db2b869b612f6e459cf573dade3b74456dc","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.15.0-pre.2.tgz"}},"5.2.0-pre.1":{"_upm":{"changelog":"### Added\n- Apple - Added `FetchStorefront` API to retrieve the user's App Store storefront country code (StoreKit 2 only).\n- GooglePlay - Added a new class, `ExternalBillingProgramClient`, to support [external content links](https://developer.android.com/google/play/billing/externalcontentlinks). This is a standalone class that supports external content links in the US and is not connected to Unity In-App Purchasing.\n\n### Changed\n- GooglePlay - Billing Library updated to 8.3.0 (was previously 8.0.0).\n- Apple - Fixed visionOS `purchaseProductExceptionCallbacks` compilation issue.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.2/manual/index.html","name":"com.unity.purchasing","version":"5.2.0-pre.1","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"a1258f543a930a65d168044939cf29ff119dd135","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.2.0-pre.1.tgz"}},"4.15.0-pre.1":{"_upm":{"changelog":"### Changed\n- GooglePlay - Billing Library updated to 8.3.0 (was previously 8.0.0).\n- GooglePlay - Added a new class, `ExternalBillingProgramClient`, to support [external content links](https://developer.android.com/google/play/billing/externalcontentlinks). This is a standalone class to support external content links in the US and is not connected to Unity In-App Purchasing.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2020.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.15/manual/index.html","name":"com.unity.purchasing","version":"4.15.0-pre.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"001b1b7193ff03aaf313174b94bdd176bd553547","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.15.0-pre.1.tgz"}},"4.14.2":{"_upm":{"changelog":"### Fixed\n- Apple - Fixed macOS support (broken in 4.13.1)","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2020.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.14/manual/index.html","name":"com.unity.purchasing","version":"4.14.2","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"039fd41c6e81616dbfb87051ec2b10ff2fc91b79","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.14.2.tgz"}},"4.14.1":{"_upm":{"changelog":"### Changed\n- Added support for Unity 6.5+ build compatibility for StoreKit 1","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2020.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.14/manual/index.html","name":"com.unity.purchasing","version":"4.14.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"c79b7b2f76aa769c565719b443e649f616a0b515","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.14.1.tgz"}},"5.1.2":{"_upm":{"changelog":"### Changed\n- Added support for Unity 6.5+ build compatibility.\n\n### Fixed\n- Apple - Fixed `OnPurchaseFailed` invoked with `DuplicateTransaction` a few seconds after confirming a renewed subscription.\n- Apple - Fixed macOS native bundle failing to load on macOS 11.x when using StoreKit 1.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.1/manual/index.html","name":"com.unity.purchasing","version":"5.1.2","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"6d21c7e374c47f7e76512a13618d2605901ded4c","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.1.2.tgz"}},"5.1.1":{"_upm":{"changelog":"### Fixed\n- Apple - Fixed SubscriptionInfo being lost when confirming a PendingOrder.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.1/manual/index.html","name":"com.unity.purchasing","version":"5.1.1","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"f48b29f81ed11daefca4a2e4e9a4728649d92b9d","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.1.1.tgz"}},"5.1.0":{"_upm":{"changelog":"### Added\n- Custom Stores - Added a new constructor `CartItem(Product product, int quantity)` to support specifying the quantity of items in the cart.\n- Custom Stores - Added `ReadOnlyProductCache` to `Store` to allow read only access to the internal product cache when implementing a custom store.\n- Apple - StoreKit 1 support has been brought back for iOS, iPadOS, tvOS below 15.0 and macOS below 12.0.\n  - By default, StoreKit 2 will be used, but older devices that are incompatible with it will use StoreKit 1.\n  - Added `StoreKitSelector.forceStoreKit1` to force StoreKit 1 usage on all supported platforms.\n\n### Changed\n- `ProductDefinition` fields `id` and `storeSpecificId` fields are now non-nullable.\n- `SubscriptionInfo` - `IsSubscribed()`, `IsExpired()`, `IsCancelled()`, `IsAutoRenewing()`, `GetRemainingTime()` are now calculated at call time.\n- Apple - On buying an already confirmed product, a `FailedOrder` callback will be sent with the `DuplicateTransaction` reason.\n\n### Fixed\n- Apple - Fixed a missing import `StoreKit/StoreKit.h` when using `\"UnityFramework/UnityFramework-Swift.h\"`","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.1/manual/index.html","name":"com.unity.purchasing","version":"5.1.0","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"ab45b3d39883d760b1169756305658e63e8a53b4","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.1.0.tgz"}},"5.0.4":{"_upm":{"changelog":"### Changed\n- Apple - Improved SK2 transaction handling","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.4","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"015b4cec2127b86a2a1f2b6a1cfa7a3b85552186","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.4.tgz"}},"5.0.3":{"_upm":{"changelog":"### Added\n- Apple - Implemented an SK2 transaction reporting hook for the Ads SDK.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.3","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"14f2ec4bbf079b6416a60958a8efef761b7dd9e7","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.3.tgz"}},"4.14.0":{"_upm":{"changelog":"### Changed\n- GooglePlay - Billing Library updated to 8.0.0 (was previously 7.1.1). No new feature support was added.\n\n### Fixed\n- Apple - Added synchronization within the `OnProductReceived` callback, potentially fixing concurrency issues during `RetrieveProducts`.\n- GooglePlay - Improved performance of `FetchAdditionalProducts`","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2020.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.14/manual/index.html","name":"com.unity.purchasing","version":"4.14.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"679658531c5f8bda75e3a1f83b8acbdf48fe8ae1","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.14.0.tgz"}},"4.13.2":{"_upm":{"changelog":"### Fixed\n- Returned missing Amazon dependencies.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2020.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.13/manual/index.html","name":"com.unity.purchasing","version":"4.13.2","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"805c2cc53be6819dbf4b05b6d180848e1c149b4d","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.13.2.tgz"}},"5.0.2":{"_upm":{"changelog":"### Changed\n- `IPurchaseService.RestoreTransactions` will now invoke `OnPurchasesFetched` for the restored purchases.\n\n### Fixed\n- Fixed `IProductService.OnProductsFetched` being invoked when 0 products were fetched.\n- Fixed Minimal Coded IAP 5.0.0 Sample having a missing script reference.\n- Removed a validation that prevented confirming a `PendingOrder` if there was an existing `ConfirmedOrder` for the same transactionID.\n- Apple - Fixed a missing import `StoreKit/StoreKit.h` when using `UnityFramework/UnityFramework-Swift.h`\n- Apple - `IPurchaseService.ProcessPendingOrdersOnPurchasesFetched` no longer applies to the Apple App Store since the store already returns pending orders on startup through the `IPurchaseService.OnPurchasePending` callback.\n  - This fixes the case where you could obtain duplicate pending orders when `ProcessPendingOrdersOnPurchasesFetched` was set to `true`.\n- Apple - Fixed an issue where FetchPurchases would be limited to a single order per product.\n- Apple - Fixed an issue where a fetched subscription could appear as both a Pending and Confirmed Order.\n- Apple - Removed usage of unsupported function `IAppleStoreExtendedPurchaseService.PresentCodeRedemptionSheet` in tvOS\n- Apple - Fixed an issue where orders which were confirmed while offline would not invoke any callbacks on repurchase.\n- Apple - Fixed a case where `GetPurchases()` would return duplicate pending orders.\n- Apple - Fixed a case where `GetPurchases()` would return pending orders for orders that were already confirmed.\n- Apple - Fixed the case where re-buying a subscription could consume it prematurely.\n- Google - Fixed a case where a `ProductType.Consumable` product could be return in a `ConfirmedOrder` instead of a `PendingOrder` when the consumable was acknowledged, but not consumed.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.2","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"fccfea3d9a46a28681da30c119d285709f883116","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.2.tgz"}},"4.13.1":{"_upm":{"changelog":"### Changed\n- Package auto-bumped via PETS for editor manifest distribution","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2020.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.13/manual/index.html","name":"com.unity.purchasing","version":"4.13.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"a88dd6304152d54a52fbdc67a2b86bc7f36b3103","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.13.1.tgz"}},"5.0.1":{"_upm":{"changelog":"### Changed\n- Updated `com.unity.services.core` dependency to 1.14.0\n\n### Fixed\n- Coded IAP backwards compatibility fixes:\n  - `ProcessPurchase` will be invoked for restored purchases on their first encounter. This brings back the behaviour from IAP 4.13.0.\n  - Apple - Fixed `Product.hasReceipt` and `Product.receipt` falsely returning a receipt for products that were not purchased.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.1","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.14.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"821fd0bcef6f2bf367100b4263df9fb4c1b213b1","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.1.tgz"}},"5.0.0":{"_upm":{"changelog":"### Added\n- Samples - Added updated samples:\n  - Added `01 Buying Consumables`\n  - Added `02 Buying Subscriptions`\n  - Added `03 Fetching Additional Products`\n  - Added `04 Integrating Self-Provided Backend Receipt Validation`\n  - Added `06 Initialize Unity Gaming Services`\n  - Added `07 Catalog Provider`\n  - Added `Apple App Store - 01 Refreshing App Receipts`\n  - Added `Apple App Store - 02 Handling Deferred Purchases`\n  - Added `Apple App Store - 03 Retrieving Product Receipt`\n  - Added `Apple App Store - 04 Fraud Detection`\n  - Added `Apple App Store - 05 Getting Introductory Subscription Prices`\n  - Added `Google Play Store - 05 Fraud Detection`\n  - Added `Google Play Store - 06 Local Receipt Validation`\n\n### Fixed\n- Apple - Purchase restoration fix - product ID field was incorrectly populated with transaction ID\n- Google Play - Added handling for duplicate product IDs in store responses by skipping duplicates and logging warnings instead of failing with dictionary key error.\n- Google Play - Fixed ProGuard minification issue preventing IAP from working in release builds\n\n### Changed\n- GooglePlay - Billing Library updated to 8.0.0 (was previously 7.1.1). No new feature support was added.\n- Improved transaction fetching performance through parallel processing optimization","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample demonstrates the basics of handling subscription purchases using the entitlement system to check and manage subscription status.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"Demonstrates how to dynamically fetch and display additional in-app products using the Store Controller in Unity IAP. Includes best practices for event subscription management.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/07 Catalog Provider","description":"Demonstrates how to declare in-app products using a CatalogProvider in Unity IAP. Shows how to generate and use a product catalog JSON file.","displayName":"07 Catalog Provider"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 02 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 03 RetrievingJWSRepresentation","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 03 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 04 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 04 Fraud Detection"},{"path":"Samples~/Apple App Store - 05 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 05 Getting Introductory Subscription Prices"},{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"},{"path":"Samples~/Google Play Store - 06 Local Receipt Validation","description":"This sample showcases how to do local receipt validation with the Google Play Store.","displayName":"Google Play Store - 06 Local Receipt Validation"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.0","displayName":"In-App Purchasing","description":"Unity In-App Purchasing (IAP) allows you to sell digital content within your application. This package provides a unified API for handling in-app purchases across multiple platforms, including the Apple App Store and Google Play Store. Unity IAP simplifies implementing and managing purchases for different stores.\n\nFeatures:\n\n ▪ A single API to access all supported stores, making it easier to manage your in-game economy.\n ▪ Automatic integration with Unity Analytics for monitoring revenue and purchase data across platforms.\n ▪ Supports iOS, Mac, tvOS, and Google Play.\n ▪ Client-side receipt validation for Apple Store and Google Play.\n\nTo enable In-App Purchasing, install the package and open the Services window (Window > General > Services).\n\nUpgrade notes:\nThis release is a major update to the IAP package. Review the included sample for a complete example of how to use the new version. Upgrading is recommended to take advantage of the latest improvements and features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"2d186de38414f652564edd8e099c170cbbde19db","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.0.tgz"}},"5.0.0-pre.8":{"_upm":{"changelog":"### Added\n- Added `UnityIAPServies.StoreController` as a wrapper around the other services obtained through UnityIAPServices.\n  - Added `StoreController.PurchaseProduct(string productId)` to initiate a purchase using only the productId.\n- Added messages to `[Obsolete]` attributes on deprecated APIs, test methods, and internal classes.\n- Samples - Added Minimal Coded IAP 5.0.0 Sample to demonstrate a very basic implementation of Coded IAP.\n- Added documentation note in `UpgradeV5.md` clarifying the singleton behavior of `ConfigurationBuilder.Instance` and the use of its constructor as a workaround for scenarios requiring multiple initializations.\n- Added backwards compatibility support for `IAPListener` and `CodelessIAPButton` callbacks. When updating from an older IAP version, your scripts will continue to work without modification.\n- Apple - Added `IAppleStoreExtendedPurchaseService.SetRefreshAppReceipt` to refresh the receipt when a purchase succeeds (true by default). This is useful if are using a backwards compatible implementation or if you use `IOrderInfo.PurchasedProductInfo.subscriptionInfo`.\n- Added `IOrderInfo.Google` to provide access to information specific to orders coming from the Google Play Store.\n- Added `Orders.DeferredOrders` to provide access to deferred orders fetched from the store.\n- Added back `useFakeStoreUIMode` and `useFakeStoreAlways` variables to `StandardPurchasingModule` for backwards compatibility.\n  - Important: neither setting is respected by the FakeStore. Functionality has not been reimplemented.\n- Added back `Instance(AppStore androidStore)` call to `StandardPurchasingModule` for backwards compatibility. Calling `Instance(AppStore androidStore)` will return the same results as `Instance()` regardless of the provided AppStore.\n\n### Changed\n- IAP Catalog - Renamed `Automatically initialize UnityPurchasing (recommended)` to `Automatically initialize UnityIAPServices (recommended)`.\n  - Brought back `Apple Configuration`, `Google Configuration` and `Catalog Export` in IAP Catalog.\n  - Updated translation locales for Google Play Store and Apple App Store\n- Renamed APIs introduced since 5.0.0-pre.1 to improve consistency:\n  - `IStoreService.ConnectAsync` to `IStoreService.Connect`\n  - `IPurchaseService.ConfirmOrder` to `IPurchaseService.ConfirmPurchase`\n  - `IPurchaseService.IsProductEntitled` to `IPurchaseService.CheckEntitlement`\n  - `Entitlement.ProductChecked` to `Entitlement.Product`\n  - `Entitlement.EntitlementOrder` to `Entitlement.Order`\n  - `ConfirmOrderException` to `ConfirmPurchaseException`\n  - `INativeStore.RetrieveProducts` to `INativeStore.FetchProducts`\n- Callbacks introduced since 5.0.0-pre.1 were changed to events:\n  - `IProductService.AddProductsUpdatedAction` and `IProductService.RemoveProductsUpdatedAction` were replaced with `IProductService.OnProductsUpdated`\n  - `IProductService.AddProductsFetchFailedAction` and `IProductService.RemoveProductsFetchFailedAction` were replaced with `IProductService.OnProductsFetchFailed`\n  - `IPurchaseService.AddPendingOrderUpdatedAction` and `IPurchaseService.RemovePendingOrderUpdatedAction` were replaced with `IPurchaseService.OnPurchasePending`\n  - `IPurchaseService.AddConfirmedOrderUpdatedAction` and `IPurchaseService.RemoveConfirmedOrderUpdatedAction` were replaced with `IPurchaseService.OnPurchaseConfirmed`\n  - `IPurchaseService.AddPurchaseFailedAction` and `IPurchaseService.RemovePurchaseFailedAction` were replaced with `IPurchaseService.OnPurchaseFailed`\n  - `IPurchaseService.AddPurchaseDeferredAction` and `IPurchaseService.RemovePurchaseDeferredAction` were replaced with `IPurchaseService.OnPurchaseDeferred`\n  - `IPurchaseService.AddFetchedPurchasesAction` and `IPurchaseService.RemoveFetchedPurchasesAction` were replaced with `IPurchaseService.OnPurchasesFetched`\n  - `IPurchaseService.AddFetchPurchasesFailedAction` and `IPurchaseService.RemoveFetchPurchasesFailedAction` were replaced with `IPurchaseService.OnPurchasesFetchFailed`\n  - `IPurchaseService.AddCheckEntitlementAction` and `IPurchaseService.RemoveCheckEntitlementActio","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.0-pre.8","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nThis is a major overhaul of the IAP package. Consult the included sample for a complete example on how to use this new version.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS and Google Play.\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"d8d3484fe2f2445485a1723725388b6a511451d8","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.0-pre.8.tgz"}},"4.13.0":{"_upm":{"changelog":"### Changed\n- GooglePlay - Billing Library updated to 7.1.1 (was previously 6.2.1). No new feature support was added.\n- GooglePlay - `GooglePlayProrationMode` has been replaced with `GooglePlayReplacementMode` to match the Google Play Billing Library.\n  - `GooglePlayProrationMode` has been marked `[Obsolete]`","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2020.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.13/manual/index.html","name":"com.unity.purchasing","version":"4.13.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"f0b6c9dee9b94c70a36061f31deeb29d834cf092","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.13.0.tgz"}},"5.0.0-pre.7":{"_upm":{"changelog":"### Added\n- Added `UnityIAPServies.StoreController` as a wrapper around the other services obtained through UnityIAPServices.\n  - Added `StoreController.PurchaseProduct(string productId)` to initiate a purchase using only the productId.\n- Added messages to `[Obsolete]` attributes on deprecated APIs, test methods, and internal classes.\n- Samples - Added Minimal Coded IAP 5.0.0 Sample to demonstrate a very basic implementation of Coded IAP.\n- Added documentation note in `UpgradeV5.md` clarifying the singleton behavior of `ConfigurationBuilder.Instance` and the use of its constructor as a workaround for scenarios requiring multiple initializations.\n- Added backwards compatibility support for `IAPListener` and `CodelessIAPButton` callbacks. When updating from an older IAP version, your scripts will continue to work without modification.\n- Apple - Added `IAppleStoreExtendedPurchaseService.SetRefreshAppReceipt` to refresh the receipt when a purchase succeeds (true by default). This is useful if are using a backwards compatible implementation or if you use `IOrderInfo.PurchasedProductInfo.subscriptionInfo`.\n- Added `IOrderInfo.Google` to provide access to information specific to orders coming from the Google Play Store.\n- Added `Orders.DeferredOrders` to provide access to deferred orders fetched from the store.\n- Added back `useFakeStoreUIMode` and `useFakeStoreAlways` variables to `StandardPurchasingModule` for backwards compatibility.\n  - Important: neither setting is respected by the FakeStore. Functionality has not been reimplemented.\n- Added back `Instance(AppStore androidStore)` call to `StandardPurchasingModule` for backwards compatibility. Calling `Instance(AppStore androidStore)` will return the same results as `Instance()` regardless of the provided AppStore.\n\n### Changed\n- IAP Catalog - Renamed `Automatically initialize UnityPurchasing (recommended)` to `Automatically initialize UnityIAPServices (recommended)`.\n  - Brought back `Apple Configuration`, `Google Configuration` and `Catalog Export` in IAP Catalog.\n  - Updated translation locales for Google Play Store and Apple App Store\n- Renamed APIs introduced since 5.0.0-pre.1 to improve consistency:\n  - `IStoreService.ConnectAsync` to `IStoreService.Connect`\n  - `IPurchaseService.ConfirmOrder` to `IPurchaseService.ConfirmPurchase`\n  - `IPurchaseService.IsProductEntitled` to `IPurchaseService.CheckEntitlement`\n  - `Entitlement.ProductChecked` to `Entitlement.Product`\n  - `Entitlement.EntitlementOrder` to `Entitlement.Order`\n  - `ConfirmOrderException` to `ConfirmPurchaseException`\n  - `INativeStore.RetrieveProducts` to `INativeStore.FetchProducts`\n- Callbacks introduced since 5.0.0-pre.1 were changed to events:\n  - `IProductService.AddProductsUpdatedAction` and `IProductService.RemoveProductsUpdatedAction` were replaced with `IProductService.OnProductsUpdated`\n  - `IProductService.AddProductsFetchFailedAction` and `IProductService.RemoveProductsFetchFailedAction` were replaced with `IProductService.OnProductsFetchFailed`\n  - `IPurchaseService.AddPendingOrderUpdatedAction` and `IPurchaseService.RemovePendingOrderUpdatedAction` were replaced with `IPurchaseService.OnPurchasePending`\n  - `IPurchaseService.AddConfirmedOrderUpdatedAction` and `IPurchaseService.RemoveConfirmedOrderUpdatedAction` were replaced with `IPurchaseService.OnPurchaseConfirmed`\n  - `IPurchaseService.AddPurchaseFailedAction` and `IPurchaseService.RemovePurchaseFailedAction` were replaced with `IPurchaseService.OnPurchaseFailed`\n  - `IPurchaseService.AddPurchaseDeferredAction` and `IPurchaseService.RemovePurchaseDeferredAction` were replaced with `IPurchaseService.OnPurchaseDeferred`\n  - `IPurchaseService.AddFetchedPurchasesAction` and `IPurchaseService.RemoveFetchedPurchasesAction` were replaced with `IPurchaseService.OnPurchasesFetched`\n  - `IPurchaseService.AddFetchPurchasesFailedAction` and `IPurchaseService.RemoveFetchPurchasesFailedAction` were replaced with `IPurchaseService.OnPurchasesFetchFailed`\n  - `IPurchaseService.AddCheckEntitlementAction` and `IPurchaseService.RemoveCheckEntitlementActio","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.0-pre.7","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nThis is a major overhaul of the IAP package. Consult the included sample for a complete example on how to use this new version.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS and Google Play.\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"ee910341612ea1561470f93a1e43f9b46e6993e7","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.0-pre.7.tgz"}},"5.0.0-pre.6":{"_upm":{"changelog":"### Added\n- Added `UnityIAPServies.StoreController` as a wrapper around the other services obtained through UnityIAPServices.\n  - Added `StoreController.PurchaseProduct(string productId)` to initiate a purchase using only the productId.\n- Added messages to `[Obsolete]` attributes on deprecated APIs, test methods, and internal classes.\n- Samples - Added Minimal Coded IAP 5.0.0 Sample to demonstrate a very basic implementation of Coded IAP.\n- Added documentation note in `UpgradeV5.md` clarifying the singleton behavior of `ConfigurationBuilder.Instance` and the use of its constructor as a workaround for scenarios requiring multiple initializations.\n- Added backwards compatibility support for `IAPListener` and `CodelessIAPButton` callbacks. When updating from an older IAP version, your scripts will continue to work without modification.\n- Apple - Added `IAppleStoreExtendedPurchaseService.SetRefreshAppReceipt` to refresh the receipt when a purchase succeeds (true by default). This is useful if are using a backwards compatible implementation or if you use `IOrderInfo.PurchasedProductInfo.subscriptionInfo`.\n- Added `IOrderInfo.Google` to provide access to information specific to orders coming from the Google Play Store.\n- Added `Orders.DeferredOrders` to provide access to deferred orders fetched from the store.\n- Added back `useFakeStoreUIMode` and `useFakeStoreAlways` variables to `StandardPurchasingModule` for backwards compatibility.\n  - Important: neither setting is respected by the FakeStore. Functionality has not been reimplemented.\n- Added back `Instance(AppStore androidStore)` call to `StandardPurchasingModule` for backwards compatibility. Calling `Instance(AppStore androidStore)` will return the same results as `Instance()` regardless of the provided AppStore.\n\n### Changed\n- IAP Catalog - Renamed `Automatically initialize UnityPurchasing (recommended)` to `Automatically initialize UnityIAPServices (recommended)`.\n  - Brought back `Apple Configuration`, `Google Configuration` and `Catalog Export` in IAP Catalog.\n  - Updated translation locales for Google Play Store and Apple App Store\n- Renamed APIs introduced since 5.0.0-pre.1 to improve consistency:\n  - `IStoreService.ConnectAsync` to `IStoreService.Connect`\n  - `IPurchaseService.ConfirmOrder` to `IPurchaseService.ConfirmPurchase`\n  - `IPurchaseService.IsProductEntitled` to `IPurchaseService.CheckEntitlement`\n  - `Entitlement.ProductChecked` to `Entitlement.Product`\n  - `Entitlement.EntitlementOrder` to `Entitlement.Order`\n  - `ConfirmOrderException` to `ConfirmPurchaseException`\n  - `INativeStore.RetrieveProducts` to `INativeStore.FetchProducts`\n- Callbacks introduced since 5.0.0-pre.1 were changed to events:\n  - `IProductService.AddProductsUpdatedAction` and `IProductService.RemoveProductsUpdatedAction` were replaced with `IProductService.OnProductsUpdated`\n  - `IProductService.AddProductsFetchFailedAction` and `IProductService.RemoveProductsFetchFailedAction` were replaced with `IProductService.OnProductsFetchFailed`\n  - `IPurchaseService.AddPendingOrderUpdatedAction` and `IPurchaseService.RemovePendingOrderUpdatedAction` were replaced with `IPurchaseService.OnPurchasePending`\n  - `IPurchaseService.AddConfirmedOrderUpdatedAction` and `IPurchaseService.RemoveConfirmedOrderUpdatedAction` were replaced with `IPurchaseService.OnPurchaseConfirmed`\n  - `IPurchaseService.AddPurchaseFailedAction` and `IPurchaseService.RemovePurchaseFailedAction` were replaced with `IPurchaseService.OnPurchaseFailed`\n  - `IPurchaseService.AddPurchaseDeferredAction` and `IPurchaseService.RemovePurchaseDeferredAction` were replaced with `IPurchaseService.OnPurchaseDeferred`\n  - `IPurchaseService.AddFetchedPurchasesAction` and `IPurchaseService.RemoveFetchedPurchasesAction` were replaced with `IPurchaseService.OnPurchasesFetched`\n  - `IPurchaseService.AddFetchPurchasesFailedAction` and `IPurchaseService.RemoveFetchPurchasesFailedAction` were replaced with `IPurchaseService.OnPurchasesFetchFailed`\n  - `IPurchaseService.AddCheckEntitlementAction` and `IPurchaseService.RemoveCheckEntitlementActio","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"},{"path":"Samples~/Minimal Coded IAP 5.0.0 Sample","description":"This sample showcases how to do a minimal implementation of Coded IAP in 5.0.0.","displayName":"Minimal Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.0-pre.6","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nThis is a major overhaul of the IAP package. Consult the included sample for a complete example on how to use this new version.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS and Google Play.\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"afa6029b0d5df32751f531d4f688cf4e19021952","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.0-pre.6.tgz"}},"5.0.0-pre.5":{"_upm":{"changelog":"### Fixed\n- Apple - Fixed an issue where transactions involving a consumable already purchased in the same session would result in them being finished without invoking the callback set with `IPurchaseServive.AddPendingOrderUpdatedAction`.\n- Fixed an issue where some versions of the Unity Editor compiler were stripping `EmptyAnalyticsAdapter` when Analytics wasn't used.\n- Implemented `jwsRepresentation` in `AppleOrderInfo` to support JWS representation handling. See [Apple StoreKit Documentation](https://developer.apple.com/documentation/storekit/verificationresult/jwsrepresentation-21vgo) for more details.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.0-pre.5","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nThis is a major overhaul of the IAP package. Consult the included sample for a complete example on how to use this new version.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS and Google Play.\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"d9fd2a929577a534cb42d7ed8d669d4f875bd42b","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.0-pre.5.tgz"}},"5.0.0-pre.4":{"_upm":{"changelog":"### Changed\n- GooglePlay - Billing Library updated to 7.1.1 (was previously 6.2.1). No new feature support was added.\n- GooglePlay - `GooglePlayProrationMode` has been replaced with `GooglePlayReplacementMode` to match the Google Play Billing Library.\n  - `GooglePlayReplacementMode.Deferred` has been changed from `4` to `6` to match the Google Play Billing Library. This change was also applied to `GooglePlayProrationMode.Deferred`.\n  - `GooglePlayProrationMode` has been marked `[Obsolete]`\n\n### Fixed\n- Apple - Added missing callbacks for StoreKit 2.\n- Codeless - Fixed an issue where `PayoutDefinition` defined in the IAP Catalog was not being used.\n- IAP Catalog - Fixed an issue where `CatalogPopupProductType` was on the wrong namespace (`Editor` instead of `UnityEditor.Purchasing`).\n- IAP Catalog - Fixed an issue where the `Unknown` product type was available in the catalog.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.0-pre.4","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nThis is a major overhaul of the IAP package. Consult the included sample for a complete example on how to use this new version.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS and Google Play.\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"8ad3d6eb6f80554a8e73780227ea9cbebcd1baf5","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.0-pre.4.tgz"}},"5.0.0-pre.3":{"_upm":{"changelog":"### Added\n- Apple - Updated to [StoreKit 2](https://developer.apple.com/storekit/).\n  - All features previously in StoreKit 1 are still supported.\n  - New features from StoreKit 2 will be supported in a later release.\n  - StoreKit 1 is no longer supported and iOS devices will require iOS 15.0 or later.\n  - Added support for AppAccountToken, allowing associating purchases with an app-specific account identifier. It can be set using `SetAppAccountToken(Guid token)` on the StoreExtendedService (e.g., `IAppleStoreExtendedService.SetAppAccountToken`), and it is also exposed in the IAppleOrderInfo interface for better integration with order details. For more details, see [AppAccountToken documentation](https://developer.apple.com/documentation/storekit/transaction/appaccounttoken).\n- Apple - Updated PrivacyInfo.xcprivacy to reflect that IAP no longer uses required reason API.\n\n### Changed\n- Apple - CrossPlatformValidator is no longer used for receipt validation for Apple since StoreKit2 does it.\n- Apple - Receipt obfuscation for Apple has been removed.\n- Apple - `Product.appleProductIsRestored` is now obsolete since it's no longer used with StoreKit2.\n\n### Fixed\n- Fixed Non-Consumables being treated as Consumables (introduced by Unity IAP 5.0.0-pre.1)","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"}},"unity":"2021.3","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"}],"hideInEditor":false,"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.0-pre.3","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nThis is a major overhaul of the IAP package. Consult the included sample for a complete example on how to use this new version.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS and Google Play.\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"cd53c079c922c1a7482b88d1899902136a7edf34","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.0-pre.3.tgz"}},"5.0.0-pre.1":{"_upm":{"changelog":"In-app purchasing 5.0.0 is a major overhaul of this package.\nConsult the `Coded IAP 5.0.0 Sample` for a complete example of how to use this new version.\n\n### Added\n- Retry Policies:\n  - Add `StoreService.Connect` method which initiates the connection to the store.\n  - Add `IRetryPolicy` interface that can be implemented to provide a custom retry\n    policy. `IRetryPolicy.ShouldRetry(IRetryPolicyInformation)` determines if the request should retried and can wait\n    before retrying.\n  - Add basic implementations of the `IRetryPolicy` such as `ExponentialRetryPolicy`\n    , `MaximumNumberOfAttemptsRetryPolicy`, `NoRetriesPolicy` and `TimeLimitRetryPolicy`.\n- New callbacks on IAP Button and IAP Listener for all the events\n\n### Fixed:\n- Apple - Fixed `SubscriptionPeriodUnit` to return the correct values: Week = 1, Month = 2 (previously Month = 1, Week = 2)\n- Apple - Fixed isFamilyShareable on tvOS to be only available on supported versions (14.0 and above).\n- Apple - Error codes when a purchase fails now always returns the code from Apple instead of defaulting to `SKErrorUnknown`.\n\n### Changed\n- IAP logs are prefixed with `InAppPurchasing`.\n- IAP Catalog\n  - Removed `Apple Configuration`, `Google Configuration` and `Catalog Export` from IAP Catalog since this is no longer supported by the stores.\n  - Moved the Google Configuration `Price` under `Descriptions` which is displayed when products havn't been retrieved yet or in Fake Store\n- Assemblies starting with `UnityEngine.Purchasing` have been renamed to `Unity.Purchasing`\n\n### Removed\n- Support for Windows Store (Universal Windows Platform)\n- Support for the Unity 2020 Editor and Engine. Please upgrade to Unity 2021.3 or later.\n- Android - Support for the Unity Distribution Portal via the In-App Purchasing package. You may still use the Unity Distribution Portal in older versions of In-App Purchasing, or by writing your own implementation of the Unity Distribution Portal SDK directly, or as a custom store.\n- Support for Legacy Analytics (com.unity.modules.unityanalytics). Please use Unity Game Services Analytics instead (com.unity.services.analytics).","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"asset","unity":"2021.3","upmCi":{"footprint":"c53eaea36db91b23f2ddb31582039d36a1453dea"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Coded IAP 5.0.0 Sample","description":"This sample showcases how to use Coded IAP in 5.0.0. ","displayName":"Coded IAP 5.0.0 Sample"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"373373ea8a4145b9b68c3f0d9edc120e1abb46d3"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"5.0.0-pre.1"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@5.0/manual/index.html","name":"com.unity.purchasing","version":"5.0.0-pre.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nThis is a major overhaul of the IAP package. Consult the included sample for a complete example on how to use this new version.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS and Google Play.\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"9531986d947c68467b7739aca3e92e3a4dbbf845","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-5.0.0-pre.1.tgz"}},"4.12.2":{"_upm":{"changelog":"### Fixed\n- GooglePlay - Fixed `Product.receipt`'s `price_amount_micros` returning a string instead of a long.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"544d481608f749e2abc9a1b8553f677e8a38b237"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"c838a7aeadc3894237ebf677be7d5d7d197e1e4d"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.12.2"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.12/manual/index.html","name":"com.unity.purchasing","version":"4.12.2","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"649c6c7b3b1b6277839041f4987c0a1e66176678","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.12.2.tgz"}},"4.12.1":{"_upm":{"changelog":"### Changed\n- Apple - The change where `Product.appleProductIsRestored` was no longer sent to `ProcessPurchase` has been reverted.\n\n### Fixed\n- GooglePlay - Fixed an issue where a warning was output in the logs when retrieving purchases.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"e81258f0d37262722e720eb75951735128491391"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"31338bfad91d15e07a80ab167e571eede965ef0c"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.12.1"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.12/manual/index.html","name":"com.unity.purchasing","version":"4.12.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"7f1e587b2095ca55383098c925342e7f6dd51293","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.12.1.tgz"}},"4.12.1-pre.4":{"_upm":{"changelog":"### Fixed\n- GooglePlay - Fixed an issue that happens on Windows when disabling the IAP Dependencies.\n- GooglePlay - Fixed an `InvalidOperationException` that could occur when obtaining purchases. (Since Unity IAP 4.6.0)","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"a63f0cfc5d1a8482eed20ad372d2ce80cf08d644"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"8cfc70ac213593b914e7396fdd32c5f31bd8b7d4"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.12.1-pre.4"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.12/manual/index.html","name":"com.unity.purchasing","version":"4.12.1-pre.4","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"6b624da8d0dd87db9eb98d2a0c69703a329be2f9","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.12.1-pre.4.tgz"}},"4.12.1-pre.3":{"_upm":{"changelog":"### Changed\n- Apple - Retrieved purchases from the store will be considered as `appleProductIsRestored`.\n- Apple - `Product.appleProductIsRestored` will no longer be sent to `ProcessPurchase` since they have already been processed.\n- Apple - The changes above will improve Analytics data by avoiding duplicate purchase events.\n\n### Fixed\n- GooglePlay - Fixed an issue where dependencies were added after dependency resolution happened resulting in an error.\n- GooglePlay - Fixed `Product.receipt`'s `price_amount_micros` returning the price instead of the price in micro-units.\n- GooglePlay - Fixed `NullReferenceException` occurring when retrieving products on Unity Engine 2021.2 and earlier.\n- GooglePlay - Fixed `OnProductReceived` callback not being fired with an invalid ProductID.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"2a2e499f77f34c88a8a8967adac96ba1400a0900"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"e09db56a0b80a1d4c27d61b1408fadc7b1be4234"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.12.1-pre.3"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.12/manual/index.html","name":"com.unity.purchasing","version":"4.12.1-pre.3","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"5f42e015ec1cb7a110518ba208a613215f82297f","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.12.1-pre.3.tgz"}},"4.12.1-pre.1":{"_upm":{"changelog":"### Fixed\n- GooglePlay - Fixed errors related to `CloneReference` on Unity Engine 2021.1.\n\n### Removed\n- Removed unnecessary Android dependency, `androidx.activity:activity-compose:1.3.1`, which could cause conflicts with other plugins.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"8e7c3e1f483ff409f9d6e9a422a61958a1fc729d"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"ed4505208f3bcbcf72a12da60e5d7eec5af8e9e5"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.12.1-pre.1"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.12/manual/index.html","name":"com.unity.purchasing","version":"4.12.1-pre.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"ca7fdcf61d1d5c463f1b93be36a18ad04492eda1","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.12.1-pre.1.tgz"}},"4.12.0":{"_upm":{"changelog":"### Added\n- GooglePlay - `IGooglePlayStoreExtensions.GetObfuscatedAccountId(Product product)` has been added to obtain the obfuscated account ID of the purchase set with `IGooglePlayConfiguration.SetObfuscatedAccountId`.\n- GooglePlay - `IGooglePlayStoreExtensions.GetObfuscatedProfileId(Product product)` has been added to obtain the obfuscated profile ID of the purchase set with `IGooglePlayConfiguration.SetObfuscatedProfileId`.\n- Apple - Added visionOS support\n\n### Changed\n- Upgraded `com.unity.services.core` from 1.8.2 to 1.12.5 to include their Apple privacy manifest.\n- GooglePlay - Dependencies are now injected in the gradle files. The Billing aar is no longer included.\n- GooglePlay - Billing Library updated to 6.2.1 (was previously 5.2.1). No new feature support was added. Subscriptions must still have only 1 base plan.\n- GooglePlay - Updated the internal implementation to use `productDetails` instead of `skuDetails` to solve the `setOfferToken` warning issued by Google.\n- GooglePlay - `IGooglePlayStoreExtensions.GetPurchaseState(Product product)` has been updated to use the [getPurchaseState() instead of getOriginalJson()](https://developer.android.com/google/play/billing/integrate#pending). This change will make the purchase state more reliable.\n- GooglePlay - `IGooglePlayStoreExtensions.ConfirmSubscriptionPriceChange` has been marked `[Obsolete]` as it is no longer supported since Google Play Billing Library 6.0.0. For alternatives, see the [price changes guide](https://developer.android.com/google/play/billing/price-changes).\n- GooglePlay - `IStoreListener.OnInitializeFailed` for `InitializationFailureReason.PurchasingUnavailable` will now return the BillingResponseCode when product retrieval is successful, but an error occured and no products were returned.\n\n### Fixed\n- Fixed `OnPurchaseFailed` - It now returns the `productId` (previously the `transactionId`) in the `PurchaseFailureDescription` when the product isn't available for purchase.\n- Fixed a NullReferenceException when retrieving products on Unity Engine 2020.\n\n### Removed\n- GooglePlay - The `iconUrl` and `skuDetailsToken` sub-entry to the `Product.receipt`'s `\"Payload\"`'s `\"skuDetails\"` will now return an empty string since they are no longer supported.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"75e81fa5f2b97bee3999379f12345c7712162201"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"8615c80aac558fdbe941fd7401c06c83355507b1"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.12.0"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.12/manual/index.html","name":"com.unity.purchasing","version":"4.12.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.12.5","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"c7eadb234fb39fe7c5ee5283270ec4d04b3b67c4","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.12.0.tgz"}},"4.11.0":{"_upm":{"changelog":"### Added\n- GooglePlay - `IGooglePlayConfiguration.SetMaxConnectionAttempts(int maxConnectionAttempts)` has been added to specify the max connection attempts to the Google Play Store.\n- Apple - Added privacy manifest to comply with Apple's new privacy requirements. More details on how the Unity Engine supports this can be found [here](https://forum.unity.com/threads/apple-privacy-manifest-updates-for-unity-engine.1529026/).\n- Added `ConfigurationBuilder.logUnavailableProducts` to specify if unavailable products should be logged.\n\n### Changed\n- GooglePlay - The default max connection attempt to the Google Play Store has been increased from 1 to 3. See `IGooglePlayConfiguration.SetMaxConnectionAttempts` to configure this to a different value.\n- Apple - The log when retrieving products (SKProductsResponse) now also contains the invalid products count.\n- Improved `IStoreListener.OnInitializeFailed` for `InitializationFailureReason.NoProductsAvailable` by adding a message to clarify whether the store returned products or not.\n\n### Fixed\n- GooglePlay - Fixed AndroidJavaObject not being disposed causing a global reference table overflow in an edge case.\n- GooglePlay - Fixed bug causing BillingClient duplication resulting in ANR.\n- Apple - Fixed isFamilyShareable on tvOS to be only available on supported versions (14.0 and above).\n- Apple - Error codes when a purchase fails now always returns the code from Apple instead of defaulting to `SKErrorUnknown`.\n- Fixed Analytics' transactionServer being null.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"72d426a29282f0ac1ae5c00e4a52102f61fe97f4"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"d048512094268963253b336dd8eba44548759d38"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.11.0"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.11/manual/index.html","name":"com.unity.purchasing","version":"4.11.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.8.2","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"f859f6d81f2915c6fddfafb5cc276f841939e14b","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.11.0.tgz"}},"4.10.0":{"_upm":{"changelog":"### Changed\n- Unity Distribution Portal - IAP will retract support for UDP at some point in the near future (Announcement TBD). Until then, all UDP features will continue to function, but the public interfaces, as well as some private functions are now marked `[Obsolete]`. In the next major update these will all be removed and UDP will cease to function with that version of In-App Purchasing and those that follow.\n- Unity Distribution Portal - If the editor is unable to connect to the UDP backend, the developer can now use some UDP catalog features in offline mode. This allows the developer to continue to enter prices, meaning that prices will need to be synced manually. In this case, we strongly suggest you sync your prices properly once connection is re-established. A warning message will display in the Catalog if the editor is unable to connect to the UDP backend.\n- Analytics - The Legacy Analytics built-in module, com.unity.modules.unityanalytics, is now no longer a dependency. You may not remove it from your project if you don't use it. Make sure it is in your project if you do use it.\n- Project Settings - In the Services Project Settings page of the Editor, we have changed the endpoint from which the Google Play Key is obtained. Also, instead of setting the key directly in the editor, there is now a dashboard link to set it directly on the backend to avoid future errors.\n\n### Fixed\n- Google Play - Some versions of the Unity Editor compiler were stripping `GooglePurchaseUpdatedListener.onPurchasesUpdated`, which was assigned as a callback to the Google Billing module, causing a lack of purchase failure callbacks, and logging `\"No such proxy method:\"`. Also fixed this for `BillingClientStateListener.onBillingServiceDisconnected`, `BillingClientStateListener.onBillingSetupFinished` and `SkuDetailsResponseListener.onSkuDetailsResponse`.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"313e6114563bae2e5578a67d5c5591869ae28a71"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"c1569b96eee83bd027cadf45a97ec73f6edf6661"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.10.0"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.10/manual/index.html","name":"com.unity.purchasing","version":"4.10.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.8.2","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"7e73d9ebd99a8df2cd3cab22c0f61a830d8dcf85","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.10.0.tgz"}},"4.9.4":{"_upm":{"changelog":"### Changed\n- Google Play - Billing Library updated to 5.2.1 (was previously 5.1.0). No new feature support was added, this is simply to add compatibility with Android 14.\n- Apple - Using the CrossPlatformValidation (or AppleValidator), receipts will now be validated if their certificate chain is encoded in SHA-256 instead of SHA-1. Old receipts encoded in SHA-1 will still be validated. See [Apple Technical Note](https://developer.apple.com/documentation/technotes/tn3138-handling-app-store-receipt-signing-certificate-changes).","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"19e0452c9372b862949f9f812aa23ed31b53a489"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"68f2d826211743b93100781be51c9209ee1377be"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.9.4"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.9/manual/index.html","name":"com.unity.purchasing","version":"4.9.4","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.8.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"403cf0895bc764ad684b4d314dc97a152c0e00c9","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.9.4.tgz"}},"4.9.3":{"_upm":{"changelog":"### Changed\n- Analytics events are now sent when a purchase has been confirmed (`ConfirmPendingTransaction` or `ProcessPurchase` returning `PurchaseProcessingResult.Complete`). This will improve the accuracy of revenue tracking by no longer considering pending purchases.\n- Updated `Product.transactionID`, `Product.hasReceipt` and `Product.receipt` documentation to include pending transaction use cases.\n- Updated samples to use `IDetailedStoreListener` and its improved `OnPurchaseFailed` callback.\n- Added a new `RefreshAppReceipt(Action<string> successCallback, Action<string> errorCallback)` callback containing more information when the errorCallback is invoked in `IAppleExtensions : IStoreListener`.\n\n### Fixed\n- `OnPurchaseFailed` will no longer log an error when there's only new IAP Buttons with no IAP Listener.\n- Apple - Improved the accuracy of `Product.appleProductIsRestored` when using the restore transaction button. These will now correctly be flagged as true.\n- Codeless - `OnPurchaseFailed(Product, PurchaseFailureDescription)` callback was not invoked in `IAP Listener`","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"91415d00952a4a457502d551566c21f547eef3d5"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"42718bbbc4b238be117b2c0c72c843152dffec63"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.9.3"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.9/manual/index.html","name":"com.unity.purchasing","version":"4.9.3","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.8.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"93f5f173cccb99d762f96f738f3ab02981f8df05","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.9.3.tgz"}},"4.9.2":{"_upm":{"changelog":"### Changed\n- Analytics events are now sent when a purchase has been confirmed (`ConfirmPendingTransaction` or `ProcessPurchase` returning `PurchaseProcessingResult.Complete`). This will improve the accuracy of revenue tracking by no longer considering pending purchases.\n- Updated `Product.transactionID`, `Product.hasReceipt` and `Product.receipt` documentation to include pending transaction use cases.\n- Updated samples to use `IDetailedStoreListener` and its improved `OnPurchaseFailed` callback.\n- Added a new `RefreshAppReceipt(Action<string> successCallback, Action<string> errorCallback)` callback containing more information when the errorCallback is invoked in `IAppleExtensions : IStoreListener`.\n\n### Fixed\n- `OnPurchaseFailed` will no longer log an error when there's only new IAP Buttons with no IAP Listener.\n- Apple - Improved the accuracy of `Product.appleProductIsRestored` when using the restore transaction button. These will now correctly be flagged as true.\n- Codeless - `OnPurchaseFailed(Product, PurchaseFailureDescription)` callback was not invoked in `IAP Listener`","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"assets","unity":"2020.3","upmCi":{"footprint":"0c244d8f75e60206f34c5ba7328d9a5c93566401"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"e15bdead21c96f6cbb6cf3592b6d2caaf0fa80b0"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.9.2"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.9/manual/index.html","name":"com.unity.purchasing","version":"4.9.2","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.8.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"eb0d8b374954c3a113378e5a2d1ce95242812ba3","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.9.2.tgz"}},"4.8.0":{"_upm":{"changelog":"### Added\n- Added new [IAP Button](https://docs.unity3d.com/Packages/com.unity.purchasing@4.8/manual/CodelessIAPButton.html) in the editor. This new button allows for more UI customization.  The new button will no longer update the button fields by default.\n- Added a new event `OnProductFetched(Product)` to the [IAP Listener](https://docs.unity3d.com/Packages/com.unity.purchasing@4.8/manual/IAPListener.html) and to the [IAP Button](https://docs.unity3d.com/Packages/com.unity.purchasing@4.8/manual/CodelessIAPButton.html) it is called after fetching products from the app stores.\n- Added a new `OnPurchaseFailed(Product, PurchaseFailureDescription)` callback containing more information on the failed purchase in `IDetailedStoreListener : IStoreListener`\n\n### Changed\n- [IAP Button](https://docs.unity3d.com/Packages/com.unity.purchasing@4.8/manual/IAPButton.html) is now obsolete.\n- Google Play - Billing Library update from version 4.0.0 to 5.1.0 [Google Release Notes](https://developer.android.com/google/play/billing/release-notes).\n    New Google Billing features are not supported yet, they will be included in a future major update.\n- Removed the nullable operator `?` from public interfaces and classes.\n- `IStoreListener.OnPurchaseFailed` is now obsolete.\n- When present, Analytics 4.4.0 and above will now use the new interface `IAnalyticsStandardEventComponent` from Services Cores 1.8.1.\n- Upgraded `com.unity.services.core` from 1.5.2 to 1.8.1.\n\n### Fixed\n- Samples - Some samples had IAP 4.6.0 `IStoreListener` changes not completely implemented causing compilation errors.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"asset","unity":"2020.3","upmCi":{"footprint":"39a81f23b11eb69a6d62e7d019d33fcaf7c35c46"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"764a3bd5b373bbdb7bbd3a87a2b260204d2b1365"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.8.0"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.8/manual/index.html","name":"com.unity.purchasing","version":"4.8.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.8.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"74ff9a8b836b10b566d4eaecaf1db17bee303ffb","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.8.0.tgz"}},"4.7.0":{"_upm":{"changelog":"### Added\n- Added `storeSpecificErrorCode` to `PurchaseFailureDescription.message` when available.\n\n### Fixed\n- Unity IAP will consider the call to `UnityPurchasing.initialize` completed before invoking the correct callback `IStoreListener.OnInitialized` or `IStoreListener.OnInitializeFailed`. This prevents these callbacks from being invoked more than once per initialization.\n- GooglePlay - Fixed `No such proxy method` exception in our representation of `BillingClientStateListener.onBillingServiceDisconnected()` introduced by Unity IAP 4.6.0\n- Apple - Fixed a `NullReferenceException` happening when the receipt isn't found.\n\n### Changed\n- Removed `com.unity.services.analytics` from the IAP SDK dependencies","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"asset","unity":"2020.3","upmCi":{"footprint":"ed2d83ca5c36a9191372ae3683b492f6d069bda0"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"5060daf07dab02e284541921b99c4e01e2673503"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.7.0"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.7/manual/index.html","name":"com.unity.purchasing","version":"4.7.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.5.2","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"63a69bf634cfca3bd99cc000e043dcff09eac24c","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.7.0.tgz"}},"4.6.0":{"_upm":{"changelog":"### Added\n- Added a new restore transaction callback `RestoreTransactions(Action<bool, string> callback)` to obtain the error string when RestoreTransactions is not successful (`IAppleExtensions` and `IGooglePlayStoreExtensions`).\n- Added a new initialize failed callback `IStoreListener.OnInitializeFailed(InitializationFailureReason, string)` to obtain the error string when OnInitializeFailed is invoked.\n- Added a new setup failed callback `IStoreCallback.OnSetupFailed(InitializationFailureReason, string)` to obtain the error string when OnSetupFailed is invoked.\n- Added a new FetchAdditionalProducts. The failCallback contains an error string. `IStoreController.FetchAdditionalProducts(HashSet<ProductDefinition>, Action, Action<InitializationFailureReason, string>)`\n- Apple - `Product.appleOriginalTransactionId` : Returns the original transaction ID. This field is only available when the purchase was made in the active session.\n- Apple - `Product.appleProductIsRestored` : Indicates whether the product has been restored.\n- GooglePlay - `IGooglePlayConfiguration.SetFetchPurchasesExcludeDeferred(bool exclude)` has been added to revert to the previous behaviour. This is not recommended and should only be used if `Deferred` purchases are handled in your `IStoreListener.ProcessPurchase`.\n- GooglePlay - `IGooglePlayStoreExtensions.GetPurchaseState(Product product)` has been added to obtain the `GooglePurchaseState` of a product.\n- GooglePlay - Added missing values to `GoogleBillingResponseCode` in order to output it in `PurchaseFailureDescription`'s message when available.\n- Codeless - Added to the [IAP Button](https://docs.unity3d.com/Packages/com.unity.purchasing@4.6/manual/IAPButton.html) the option to add a script for the On Transactions Restored: `void OnTransactionsRestored(bool success, string? error)`\n\n### Changed\n- Upgraded `com.unity.services.core` from 1.3.1 to 1.5.2\n- Upgraded `com.unity.services.analytics` from 4.0.1 to 4.2.0\n- The old OnInitializeFailed `OnInitializeFailed(InitializationFailureReason error)` was marked `Obsolete`\n- The old OnSetupFailed `OnSetupFailed(InitializationFailureReason reason)` was marked `Obsolete`\n- The old FetchAdditionalProducts `FetchAdditionalProducts(HashSet<ProductDefinition> additionalProducts, Action successCallback, Action<InitializationFailureReason> failCallback)` was marked `Obsolete`\n- The old restore transaction callback `RestoreTransactions(Action<bool> callback)` was marked `Obsolete` (`IAppleExtensions` and `IGooglePlayStoreExtensions`).\n- Apple - Transactions received from Apple that are invalid (where the product is not entitled) will no longer output the `Finishing transaction` log. This only affects transactions that never reached the `ProcessPurchase`.\n- GooglePlay - The enum `GooglePurchaseState` now recognizes `4` as `Deferred`.\n\n### Fixed\n- Analytics - A ServicesInitializationException introduced in Analytics 4.3.0 is now handled properly.\n- Analytics - Fixed an issue where transactions events were invalidated when there was no localization data for a product.\n- GooglePlay - Fixed a `NullReferenceException` when querying sku details while the BillingClient is not ready.\n- GooglePlay - Fixed [Application Not Responding (ANR)](https://developer.android.com/topic/performance/vitals/anr) when foregrounding the application while disconnected from the Google Play Store.\n- GooglePlay - Limited the occurence of `PurchasingUnavailable` errors when retrieving products while in a disconnected state to once per connection.\n- GooglePlay - `Deferred` purchases are, by default, no longer sent to `IStoreListener.ProcessPurchase` when fetching purchases. This avoids the possibility of granting products that were not paid for. These purchases will only be processed once they become `Purchased`. This can be reverted with `IGooglePlayConfiguration.SetFetchPurchasesExcludeDeferred(bool exclude)` to not exclude them, but `Deferred` purchases will need to be handled in `IStoreListener.ProcessPurchase`.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://dashboard.unity3d.com/","projectDashboardUrl":"https://dashboard.unity3d.com/organizations/{0}/projects/{1}/analytics/v2/dashboards/revenue","projectDashboardUrlType":"OrganizationKeyAndProjectGuid"},"supportedPlatforms":["Android","iOS"]},"type":"asset","unity":"2020.3","upmCi":{"footprint":"ef0834f685faf8a4eee2aee17bdf896d10990621"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"42927a3b866999421b2df26e836f720feb67a743"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.6.0"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.6/manual/index.html","name":"com.unity.purchasing","version":"4.6.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.5.2","com.unity.modules.androidjni":"1.0.0","com.unity.services.analytics":"4.2.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"6b59f05f7b6e3b0d00b7ca5248bf966399a80304","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.6.0.tgz"}},"4.5.2":{"_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","unity":"2020.3","upmCi":{"footprint":"8d7fcd58912dafc667eb886e77d0c64cb61f2cdb"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"2e002e868803fadde53e54c4029e776932314588"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.5.2"},"documentationUrl":"https://docs.unity3d.com/Packages/com.unity.purchasing@4.5/manual/index.html","name":"com.unity.purchasing","version":"4.5.2","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.3.1","com.unity.modules.androidjni":"1.0.0","com.unity.services.analytics":"4.0.1","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"a94bc4ac57830976d8782b5f5da01ce45f517f2b","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.5.2.tgz"}},"4.5.1":{"_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","unity":"2020.3","upmCi":{"footprint":"bfa3c3fe856a3713d41034c9eb9b81a8ac896f44"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"0e6a0e037cbfe72c55e5eff3c186ef29484f6636"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.5.1"},"name":"com.unity.purchasing","version":"4.5.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.3.1","com.unity.modules.androidjni":"1.0.0","com.unity.services.analytics":"4.0.1","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"f1d12a6c12403ebc726e870fec0b0eecee2c69cd","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.5.1.tgz"}},"4.5.0":{"_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","unity":"2020.3","upmCi":{"footprint":"ef72f04760c486d0d36b36a54497a5213b12e03a"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 11 FamilySharing","description":"This sample showcases how to use Unity IAP to manage family shared purchases.","displayName":"Apple App Store - 11 Family Sharing"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"fd22d9cd3bd08b92a9b38e4fbfc1391c45b5e538"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.5.0"},"name":"com.unity.purchasing","version":"4.5.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.3.1","com.unity.modules.androidjni":"1.0.0","com.unity.services.analytics":"4.0.1","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"17d22453009609be06a949894ccacaa06e62bd56","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.5.0.tgz"}},"4.4.1":{"_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","unity":"2020.3","upmCi":{"footprint":"a69c6d1780588a2c6705495db80ad434c9e1f04e"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"9dba5d5eda45d5841b3bcb9fadeba1b2ed5ef45b"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.4.1"},"name":"com.unity.purchasing","version":"4.4.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.3.1","com.unity.modules.androidjni":"1.0.0","com.unity.services.analytics":"4.0.1","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"4ffc6c2ed11cbda34b8442b9e4321ac7166954bf","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.4.1.tgz"}},"4.4.0":{"_upm":{"changelog":"### Added\n- GooglePlay - Google Play Billing Library version 4.0.0.\n  - The Multi-quantity feature is not yet supported by the IAP package and will come in a future update. **Do not enable `Multi-quantity` in the Google Play Console.**\n  - Add support for\n      the [IMMEDIATE_AND_CHARGE_FULL_PRICE](https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProrationMode#IMMEDIATE_AND_CHARGE_FULL_PRICE)\n      proration mode. Use `GooglePlayProrationMode.ImmediateAndChargeFullPrice` for easy access.\n\n### Fixed\n- GooglePlay - Fix `IGooglePlayConfiguration.SetDeferredPurchaseListener`\n  and `IGooglePlayConfiguration.SetDeferredProrationUpgradeDowngradeSubscriptionListener` callbacks sometimes not being\n  called from the main thread.\n- GooglePlay - When configuring `IGooglePlayConfiguration.SetQueryProductDetailsFailedListener(Action<int> retryCount)`, the action will be invoked with retryCount starting at 1 instead of 0.\n- GooglePlay - Added a validation when upgrading/downgrading a subscription that calls `IStoreListener.OnPurchaseFailed` with `PurchaseFailureReason.ProductUnavailable` when the old transaction id is empty or null. This can occur when attempting to upgrade/downgrade a subscription that the user doesn't own.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","unity":"2020.3","upmCi":{"footprint":"96eed2b3c93a18c9512177b87bbc7c736957dec9"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"94c5a447a90fc84222a89d4cffe216b3cfba7ef6"},"hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.4.0"},"name":"com.unity.purchasing","version":"4.4.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.3.1","com.unity.modules.androidjni":"1.0.0","com.unity.services.analytics":"4.0.1","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"e4603c417e7722d8db0b35e3c1b3e74fe851d48a","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.4.0.tgz"}},"4.3.0":{"_id":"com.unity.purchasing@4.3.0","_upm":{"changelog":"### Added\n- GooglePlay - API `IGooglePlayConfiguration.SetQueryProductDetailsFailedListener(Action<int>)` called when Unity IAP fails to query product details. The `Action` will be called on each query product details failure with the retry count. See documentation \"Store Guides\" > \"Google Play\" for a sample usage.","gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","_from":"file:/tmp/com.unity.purchasing@4.3.0-r4htmuzd.tgz","unity":"2020.3","upmCi":{"footprint":"0ce80874c9229d35d310a72c5334ca2ee6617c75"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"/tmp/com.unity.purchasing@4.3.0-r4htmuzd.tgz","_integrity":"sha512-u8wDxLUMTkLg3i49rJaAX0645J04KKChxGs3SWXq1EiC3Uzw59v3s224N1j1/NEaFfBc1CKjJRjOfd7uSv2Otw==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"22afb8218d24e44d7eaa04f57aed2bebe79b82e8"},"_npmVersion":"7.5.2","_nodeVersion":"12.22.5","hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.3.0"},"name":"com.unity.purchasing","version":"4.3.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.3.1","com.unity.modules.androidjni":"1.0.0","com.unity.services.analytics":"4.0.1","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"c65999ca24df78eea62c5ad5d12d9c0d7ebb585f","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.3.0.tgz"}},"4.2.1":{"_id":"com.unity.purchasing@4.2.1","_upm":{"changelog":"### Fixed\n- Downgrade `com.unity.services.core` from 1.4.1 to 1.3.1 due to a new bug found in 1.4.1"},"type":"asset","_from":"file:/tmp/com.unity.purchasing@4.2.1-90lcv64_.tgz","unity":"2020.3","upmCi":{"footprint":"5d77653888c5b36e3c4caa909124141ea75b1c19"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/06 InitializeGamingServices","description":"This sample showcases how to initialize Unity Gaming Services using the Services Core API","displayName":"06 Initialize Unity Gaming Services"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"/tmp/com.unity.purchasing@4.2.1-90lcv64_.tgz","_integrity":"sha512-vxcTKglAYHspn+5LMPZpWhFmv/q+BBJ3ak5wqk+mkbNRgAPDDOU4BWm/MIngfUy30LNkhAqoKqT3B1eNtKri7A==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"258ef39fae29e6ea64d6813cd615b9424e3a9955"},"_npmVersion":"7.5.2","_nodeVersion":"12.22.5","hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.2.1"},"name":"com.unity.purchasing","version":"4.2.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.3.1","com.unity.modules.androidjni":"1.0.0","com.unity.services.analytics":"4.0.1","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"ec768894c0d685f8eee8ff3a37e0377b85616ac4","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.2.1.tgz"}},"4.1.5":{"_id":"com.unity.purchasing@4.1.5","_upm":{"changelog":"### Fixed\n- GooglePlay - Fixed a null reference exception introduced in Unity IAP 4.1.4 that could happen when cancelling an in-app purchase."},"type":"asset","_from":"file:/tmp/com.unity.purchasing@4.1.5-tmdej03i.tgz","unity":"2019.4","upmCi":{"footprint":"4522553ac350509286a56df3b19e3e6ef28c8e2e"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"/tmp/com.unity.purchasing@4.1.5-tmdej03i.tgz","_integrity":"sha512-28Af8xbg57WVngWfOz8BBXNMBPAlcwos0/jEeUruj3ROqu7qr+1c284dTyKPq3Nbbz6lg3N6uY4NLp6ixLPO1A==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"e85a08b1c40e0237d1455cd2032430b72b82d183"},"_npmVersion":"7.5.2","_nodeVersion":"12.22.5","hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.1.5"},"name":"com.unity.purchasing","version":"4.1.5","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.0.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"ec2a2ec4e647e988e6cc8c7cdb00da6f7ebdaa74","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.1.5.tgz"}},"4.2.0-pre.2":{"_id":"com.unity.purchasing@4.2.0-pre.2","_upm":{"changelog":"### Added\n- Support for Unity Analytics TransactionFailed event.\n- Sample showcasing how to initialize [Unity Gaming Services](https://unity.com/solutions/gaming-services) using the [Services Core API](https://docs.unity.com/ugs-overview/services-core-api.html)\n\n### Changed\n- The Analytics notice in the In-App Purchasing service window has been removed for Unity Editors 2022 and up."},"type":"asset","_from":"file:/tmp/com.unity.purchasing@4.2.0-pre.2-78blylhp.tgz","unity":"2020.3","upmCi":{"footprint":"e5c58b5ba0a54e9b6ab4dc8e4ce89ef8cd8c7680"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"/tmp/com.unity.purchasing@4.2.0-pre.2-78blylhp.tgz","_integrity":"sha512-0pfcm7x7vYlIbR94xglSzgXnsa2xWpAEfh2eUTHcRRY9LqR3VmtTGY7QvpcnnRUM866UB9g1erWaHNI9Maw8Hg==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"64dd87f37c44581d6f8ba38181a7e3661b01999b"},"_npmVersion":"7.5.2","_nodeVersion":"12.22.5","hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.2.0-pre.2"},"name":"com.unity.purchasing","version":"4.2.0-pre.2","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.3.1","com.unity.modules.androidjni":"1.0.0","com.unity.services.analytics":"4.0.0-pre.2","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"6bc4a164ffa83b373084d3a1d4c5cfe08f875ce7","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.2.0-pre.2.tgz"}},"4.2.0-pre.1":{"_id":"com.unity.purchasing@4.2.0-pre.1","upm":{"changelog":"### Added\n- Support for the [new Unity Analytics](https://unity.com/products/unity-analytics) [transaction event](https://docs.unity.com/analytics/AnalyticsSDKAPI.html#Transaction).\n- The package will now send telemetry diagnostic and metric events to help improve the long-term reliability and performance of the package.\n\n### Changed\n- The minimum Unity Editor version supported is 2020.3.\n- The In-App Purchasing service window now links to the [new Unity Dashboard](https://dashboard.unity3d.com/) for Unity Editors 2022 and up.\n\n### Fixed\n- GooglePlay - Fixed OnInitializeFailed never called if GooglePlay BillingClient is not ready during initialization.\n- GooglePlay - GoogleBilling is allowed to initialize correctly even if the user's Google account is logged out, so long as it is linked. The user will need to log in to their account to continue making purchases.\n- Fixed a build error `DirectoryNotFoundException` that occurred when the build platform was iOS or tvOS and the build target was another platform."},"_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","_from":"file:/tmp/com.unity.purchasing@4.2.0-pre.1-z475y7ny.tgz","unity":"2020.3","upmCi":{"footprint":"45c6cd469210712b24e54a933882ed9f294cee0f"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"/tmp/com.unity.purchasing@4.2.0-pre.1-z475y7ny.tgz","_integrity":"sha512-a9vWtcrXEh9dk4Q3H8oKDHdW2szuw4GwVEWRovATfZXm9HAkx0mKqfNin8dRuJKeUXPdNtOo8QxU+mvGwvJMsQ==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"e75af968366fd36fded712b3cb4f41e83df8f5a7"},"_npmVersion":"7.5.2","_nodeVersion":"12.22.5","hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.2.0-pre.1"},"name":"com.unity.purchasing","version":"4.2.0-pre.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.3.1","com.unity.modules.androidjni":"1.0.0","com.unity.services.analytics":"4.0.0-pre.1","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"61c65250a5eff1dd5d9d770f4e01d0d61cc0ad67","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.2.0-pre.1.tgz"}},"4.1.4":{"_id":"com.unity.purchasing@4.1.4","upm":{"changelog":"### Fixed\n- GooglePlay - Fixed issue where if an app is backgrounded while a purchase is being processed, \nan `OnPurchaseFailed` would be called with the purchase failure reason `UserCancelled`, even if the purchase was successful."},"_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","_from":"file:/tmp/com.unity.purchasing@4.1.4-wp_1vbme.tgz","unity":"2019.4","upmCi":{"footprint":"ac1e0aec8721b92c8930e070637d8ef9b1f34811"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"/tmp/com.unity.purchasing@4.1.4-wp_1vbme.tgz","_integrity":"sha512-0POojiFiElgU11jgSlSqRuByH0wY8Ky0rcrw9Svx91F8eWdmqgJnIqnphQoWtkk1VRnheXNEA45JqglE/+itHA==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"25048fc7bf20fd8f0a1a548fc73d024ffa7b25fe"},"_npmVersion":"7.5.2","_nodeVersion":"12.21.0","hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.1.4"},"name":"com.unity.purchasing","version":"4.1.4","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.0.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"de29ca230fe685508fc13b2cb1e02df76a3db976","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.1.4.tgz"}},"4.1.3":{"_id":"com.unity.purchasing@4.1.3","_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","_from":"file:/tmp/com.unity.purchasing@4.1.3-162rq6ja.tgz","unity":"2019.4","upmCi":{"footprint":"fa8647791a2c58a50fb03a512adde2fb201c31ad"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"/tmp/com.unity.purchasing@4.1.3-162rq6ja.tgz","_integrity":"sha512-deGYiprIOE7KTIh4K+jkvWVxRR1nseuGRvQ0s5+glZjyp6FkLac4Ul7v3Pjc0+WNFlzD/SO8Ow/HZQv276iitQ==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"8207d5de2cd24c44f9756fa5c4332ee2298ef83c"},"_npmVersion":"7.5.2","_nodeVersion":"12.21.0","hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.1.3"},"name":"com.unity.purchasing","version":"4.1.3","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.0.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"7d9b419098e4967f29dccef25b18c59b84e8b77d","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.1.3.tgz"}},"4.1.2":{"_id":"com.unity.purchasing@4.1.2","_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","_from":"file:com.unity.purchasing-4.1.2.tgz","unity":"2019.4","upmCi":{"footprint":"14114633bfbea462e56753c8d262560ce47c6d5d"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"/pkgprom/com.unity.purchasing-4.1.2.tgz","_integrity":"sha512-rJEWxkZxzMHWSi5cozl4Q6zSlwqM3/zkO/IB3w/nOmGKXl0vHjhddYkqvf6+2RdEyEVrPMYaR+YNCDTGYE50pg==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"c73a3b5ce4e0a8eb429214ad6702ceb8ece5fabe"},"_npmVersion":"7.5.2","_nodeVersion":"12.21.0","hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.1.2"},"name":"com.unity.purchasing","version":"4.1.2","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.0.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"fed3762eab4ff10fa5e6e222e57da813a20603f6","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.1.2.tgz"}},"4.1.1":{"_id":"com.unity.purchasing@4.1.1","_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","_from":"file:com.unity.purchasing-4.1.1.tgz","unity":"2019.4","upmCi":{"footprint":"a5a3d3d37c9518a93f2929b2e6c8333086ca888d"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"/pkgprom/com.unity.purchasing-4.1.1.tgz","_integrity":"sha512-tY5P2rBGefihKwiYU41vmypXJsxAigAhKNwmluFPTc1alMRVt7pkLHcPU0RVDh6j4c94fC7tIyloUf68lsK2xA==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"3234a0fb16eb34ac949491c4855256bba159c59c"},"_npmVersion":"7.5.2","_nodeVersion":"12.21.0","hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.1.1"},"name":"com.unity.purchasing","version":"4.1.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.0.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"c41d0e4ef6c399f0a7f93592d2af11ac30e4b794","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.1.1.tgz"}},"4.1.0":{"_id":"com.unity.purchasing@4.1.0","_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","_from":"file:com.unity.purchasing-4.1.0.tgz","unity":"2019.4","upmCi":{"footprint":"3d8d63f0da01e5e95202a800a931897e64085113"},"license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Apple App Store - 04 RetrievingProductReceipt","description":"This sample showcases how to retrieve product transaction receipts for Ask to Buy purchases.","displayName":"Apple App Store - 04 Retrieving Product Receipt"},{"path":"Samples~/Apple App Store - 05 FraudDetection","description":"This sample showcases how to provide to the Apple App Store your user's identifiers to help prevent fraud.","displayName":"Apple App Store - 05 Fraud Detection"},{"path":"Samples~/Apple App Store - 06 GettingIntroductoryPrices","description":"This sample showcases how to use Apple extensions to get introductory subscription offer information.","displayName":"Apple App Store - 06 Getting Introductory Subscription Prices"},{"path":"Samples~/Apple App Store - 07 gettingProductDetails","description":"This sample showcases how to use Apple extensions to get additional product details.","displayName":"Apple App Store - 07 Getting Product Details"},{"path":"Samples~/Apple App Store - 08 PromptingProducts","description":"This sample shows how to Promote Products in the Apple App Store.","displayName":"Apple App Store - 08 Promoting Products"},{"path":"Samples~/Apple App Store - 09 PresentCodeRedemptionSheet","description":"This sample shows how to use the Apple App Store extensions to display a sheet for users to redeem subscription offer codes.","displayName":"Apple App Store - 09 Present Code Redemption Sheet"},{"path":"Samples~/Apple App Store - 10 CanMakePayments","description":"This sample shows how to check whether the logged-in player is permitted to purchase from the Apple App Store on this device.","displayName":"Apple App Store - 10 Can Make Payments"},{"path":"Samples~/Apple App Store - 12 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Unity IAP to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Apple App Store - 12 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"/pkgprom/com.unity.purchasing-4.1.0.tgz","_integrity":"sha512-dlU6NWWQstlofReHctbq7Aofoll1o2fd9vNv9SRayyFFrtjHIE7I2a52XFz43jtVtu2c75+ZpGDg941sxQGdlw==","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"bc618e163eb5028b2c8a98380239563f5206b5e0"},"_npmVersion":"7.5.2","_nodeVersion":"12.21.0","hideInEditor":false,"relatedPackages":{"com.unity.purchasing.tests":"4.1.0"},"name":"com.unity.purchasing","version":"4.1.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.0.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"b06e5e80c0c1f65153af26b454549fbeb5ef96de","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.1.0.tgz"}},"4.0.3":{"_id":"com.unity.purchasing@4.0.3","_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","_from":"file:com.unity.purchasing-4.0.3.tgz","unity":"2019.4","upmCi":{"footprint":"53f8240fcc408eddb86317bf54a6e6ad32be1157"},"readme":"# About In App Purchasing\n\nUnity In App Purchasing, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n- One common API to access all stores for free so you can fully understand and optimize your in-game economy\n- Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n- Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores\n- Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n- Client-side receipt validation for Apple App Store and Google Play\n\n\n\n# IMPORTANT UPGRADE NOTES\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/\n2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated\n3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\n# Installing In App Purchasing\n\nTo install this package, follow the instructions in the [Package Manager documentation](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@latest/index.html).\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.\n\n# Using In App Purchasing\n\nThe In App Purchasing Manual can be found [here](https://docs.unity3d.com/2019.4/Documentation/Manual/UnityIAP.html)\n\n# Technical details\n## Requirements\n\nThis version of In App Purchasing is compatible with the following versions of the Unity Editor:\n\n* 2019.4 and later (recommended)\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Apple App Store - 02 RestoringTransactions","description":"This sample showcases how to use Apple extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Apple App Store - 02 Restoring Transactions"},{"path":"Samples~/Apple App Store - 03 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using Apple extensions and configurations.","displayName":"Apple App Store - 03 Handling Deferred Purchases"},{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"4dccbbbbdb61c481d208d59a92c0c058ccad4e32"},"_npmVersion":"6.13.4","_nodeVersion":"12.16.1","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"4.0.3"},"name":"com.unity.purchasing","version":"4.0.3","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.0.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"c7959a9b519b93c40c6922efdd761c62fa649a4f","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.0.3.tgz"}},"4.0.0":{"_id":"com.unity.purchasing@4.0.0","_upm":{"gameService":{"groupName":"Monetize","groupIndex":4,"configurePath":"Project/Services/In-App Purchasing","genericDashboardUrl":"https://unity3d.com/unity/features/iap"},"supportedPlatforms":["Android","iOS"]},"type":"asset","_from":"file:com.unity.purchasing-4.0.0.tgz","unity":"2019.4","upmCi":{"footprint":"81be9f887b655d3a81fc1cae2038086b57defb77"},"readme":"# About In App Purchasing\n\nUnity In App Purchasing, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n- One common API to access all stores for free so you can fully understand and optimize your in-game economy\n- Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n- Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores\n- Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n- Client-side receipt validation for Apple App Store and Google Play\n\n\n\n# IMPORTANT UPGRADE NOTES\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/\n2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated\n3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\n# Installing In App Purchasing\n\nTo install this package, follow the instructions in the [Package Manager documentation](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@latest/index.html).\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.\n\n# Using In App Purchasing\n\nThe In App Purchasing Manual can be found [here](https://docs.unity3d.com/2019.4/Documentation/Manual/UnityIAP.html)\n\n# Technical details\n## Requirements\n\nThis version of In App Purchasing is compatible with the following versions of the Unity Editor:\n\n* 2019.4 and later (recommended)\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/02 BuyingSubscription","description":"This sample showcases the basics of how to handle subscription purchases and the usage of SubscriptionManager to retrieve information about a subscription.","displayName":"02 Buying Subscription"},{"path":"Samples~/03 FetchingAdditionalProducts","description":"This sample showcases how to fetch additional products using the Store Controller.","displayName":"03 Fetching Additional Products"},{"path":"Samples~/04 IntegratingSelfProvidedBackendReceiptValidation","description":"This sample showcases how to integrate your own backend validation with Unity IAP.","displayName":"04 Integrating Self-Provided Backend Receipt Validation"},{"path":"Samples~/05 LocalReceiptValidation","description":"This sample showcases how to use the cross-platform validator to do local receipt validation with the Google Play Store and Apple App Store.","displayName":"05 Local Receipt Validation"},{"path":"Samples~/Apple App Store - 01 RefreshingAppReceipt","description":"This sample shows how to refresh Apple App Store receipts.","displayName":"Apple App Store - 01 Refreshing App Receipts"},{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"},{"path":"Samples~/Google Play Store - 01 UpgradeDowngradeSubscription","description":"This sample showcases how to use the Google Play Store extensions to upgrade and downgrade subscriptions. This allows players to change their subscription, and pay a different amount of money for a different level of service.","displayName":"Google Play Store - 01 Upgrading and Downgrading Subscriptions"},{"path":"Samples~/Google Play Store - 02 RestoringTransactions","description":"This sample showcases how to use the Google Play Store extensions to restore transactions. This allows users to be granted Non-Consumable and Subscription products they already own after reinstalling the application.","displayName":"Google Play Store - 02 Restoring Transactions"},{"path":"Samples~/Google Play Store - 03 ConfirmingSubscriptionPriceChange","description":"This sample showcases how to use the Google Play Store extensions to confirm subscription price changes.","displayName":"Google Play Store - 03 Confirming Subscription Price Change"},{"path":"Samples~/Google Play Store - 04 HandlingDeferredPurchases","description":"This sample showcases how to handle deferred purchases using the Google Play Store extensions and configurations.","displayName":"Google Play Store - 04 Handling Deferred Purchases"},{"path":"Samples~/Google Play Store - 05 FraudDetection","description":"This sample showcases how to provide to the Google Play Store your user's identifiers to help prevent fraud.","displayName":"Google Play Store - 05 Fraud Detection"}],"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"a20b4d1c1d35b36da80ef223bcc1e73b4c21a590"},"_npmVersion":"6.13.4","_nodeVersion":"12.16.1","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"4.0.0"},"name":"com.unity.purchasing","version":"4.0.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, and Amazon app stores(*).\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.services.core":"1.0.1","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"8f9661f4784368650e7ee5b13e9dc9ce198a4ec0","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-4.0.0.tgz"}},"3.2.3":{"_id":"com.unity.purchasing@3.2.3","type":"asset","_from":"file:com.unity.purchasing-3.2.3.tgz","unity":"2019.4","upmCi":{"footprint":"4e4a85926086c51c18a39e5303711f3c80294410"},"readme":"# About In App Purchasing\n\nUnity In App Purchasing, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n- One common API to access all stores for free so you can fully understand and optimize your in-game economy\n- Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n- Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores\n- Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n- Client-side receipt validation for Apple App Store and Google Play\n\n\n\n# IMPORTANT UPGRADE NOTES\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/\n2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated\n3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\n# Installing In App Purchasing\n\nTo install this package, follow the instructions in the [Package Manager documentation](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@latest/index.html).\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.\n\n# Using In App Purchasing\n\nThe In App Purchasing Manual can be found [here](https://docs.unity3d.com/2019.4/Documentation/Manual/UnityIAP.html)\n\n# Technical details\n## Requirements\n\nThis version of In App Purchasing is compatible with the following versions of the Unity Editor:\n\n* 2019.4 and later (recommended)\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"}],"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"118d0cf33fe3071fea1b29143e914f3ee0b1c8e0"},"_npmVersion":"6.13.4","_nodeVersion":"12.16.1","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"3.2.3"},"name":"com.unity.purchasing","version":"3.2.3","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores(*). (*) NOTE Samsung Galaxy is obsolete and will be removed in v4. Please use Unity Distribution Platform for Samsung Galaxy Apps support.\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"82e4ea005ad8581b01d720a60ace2d48fb25b2cd","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-3.2.3.tgz"}},"3.2.2":{"_id":"com.unity.purchasing@3.2.2","type":"asset","_from":"file:com.unity.purchasing-3.2.2.tgz","unity":"2019.4","upmCi":{"footprint":"602378ccee1decd21b2cecfdac70ef38bee7dcc4"},"readme":"# About In App Purchasing\n\nUnity In App Purchasing, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n- One common API to access all stores for free so you can fully understand and optimize your in-game economy\n- Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n- Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores\n- Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n- Client-side receipt validation for Apple App Store and Google Play\n\n\n\n# IMPORTANT UPGRADE NOTES\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/\n2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated\n3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\n# Installing In App Purchasing\n\nTo install this package, follow the instructions in the [Package Manager documentation](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@latest/index.html).\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.\n\n# Using In App Purchasing\n\nThe In App Purchasing Manual can be found [here](https://docs.unity3d.com/2019.4/Documentation/Manual/UnityIAP.html)\n\n# Technical details\n## Requirements\n\nThis version of In App Purchasing is compatible with the following versions of the Unity Editor:\n\n* 2019.4 and later (recommended)\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"}],"_npmUser":{"email":"mike.adkins@unity3d.com"},"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"6ad60ad670b28d3a131388481318ce0d0ca2bc0d"},"_npmVersion":"6.14.11","_nodeVersion":"14.16.0","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"3.2.2"},"name":"com.unity.purchasing","version":"3.2.2","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores(*). (*) NOTE Samsung Galaxy is obsolete and will be removed in v4. Please use Unity Distribution Platform for Samsung Galaxy Apps support.\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"6cd70d42d971151d6ba3c0aaa66076eb614bb111","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-3.2.2.tgz"}},"3.2.1":{"_id":"com.unity.purchasing@3.2.1","type":"asset","_from":"file:com.unity.purchasing-3.2.1.tgz","unity":"2019.4","upmCi":{"footprint":"4b20a068747ccdc0fdbb55b1d2d4b466df4899ac"},"readme":"# About In App Purchasing\n\nUnity In App Purchasing, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n- One common API to access all stores for free so you can fully understand and optimize your in-game economy\n- Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n- Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores\n- Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n- Client-side receipt validation for Apple App Store and Google Play\n\n\n\n# IMPORTANT UPGRADE NOTES\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/\n2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated\n3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\n# Installing In App Purchasing\n\nTo install this package, follow the instructions in the [Package Manager documentation](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@latest/index.html).\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.\n\n# Using In App Purchasing\n\nThe In App Purchasing Manual can be found [here](https://docs.unity3d.com/2019.4/Documentation/Manual/UnityIAP.html)\n\n# Technical details\n## Requirements\n\nThis version of In App Purchasing is compatible with the following versions of the Unity Editor:\n\n* 2019.4 and later (recommended)\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/01 BuyingConsumables","description":"This sample showcases the basics of how to initialize in-app purchases and handle a simple consumable purchase.","displayName":"01 Buying Consumables"},{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"}],"_npmUser":{"email":"mike.adkins@unity3d.com"},"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"6e71b2659d2f21928de1f34d82964edeab391788"},"_npmVersion":"6.14.11","_nodeVersion":"14.16.0","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"3.2.1"},"name":"com.unity.purchasing","version":"3.2.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores(*). (*) NOTE Samsung Galaxy is obsolete and will be removed in v4. Please use Unity Distribution Platform for Samsung Galaxy Apps support.\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"0af9a4a2446fa6ce536bf4f3837d946b2acba7af","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-3.2.1.tgz"}},"3.1.0":{"_id":"com.unity.purchasing@3.1.0","type":"asset","_from":"file:com.unity.purchasing-3.1.0.tgz","unity":"2019.4","upmCi":{"footprint":"b4c63377d26d99d960f1cde3a28338088869f989"},"readme":"# About In App Purchasing\n\nUnity In App Purchasing, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n- One common API to access all stores for free so you can fully understand and optimize your in-game economy\n- Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n- Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores\n- Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n- Client-side receipt validation for Apple App Store and Google Play\n\n\n\n# IMPORTANT UPGRADE NOTES\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/\n2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated\n3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\n# Installing In App Purchasing\n\nTo install this package, follow the instructions in the [Package Manager documentation](https://docs.unity3d.com/Packages/com.unity.package-manager-ui@latest/index.html).\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.\n\n# Using In App Purchasing\n\nThe In App Purchasing Manual can be found [here](https://docs.unity3d.com/2019.4/Documentation/Manual/UnityIAP.html)\n\n# Technical details\n## Requirements\n\nThis version of In App Purchasing is compatible with the following versions of the Unity Editor:\n\n* 2019.4 and later (recommended)\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"}],"_npmUser":{"email":"mike.adkins@unity3d.com"},"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"0fda3405fb97bcc9ca72bf03834fcfee6061bacc"},"_npmVersion":"6.14.11","_nodeVersion":"14.16.0","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"3.1.0"},"name":"com.unity.purchasing","version":"3.1.0","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"36118bd589117343d6257dcdb6e491db1fecb84c","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-3.1.0.tgz"}},"3.0.2":{"_id":"com.unity.purchasing@3.0.2","type":"asset","unity":"2019.4","upmCi":{"footprint":"5346a222b80ccabc199078867e235b983df19f7f"},"readme":"# UPM Package Starter Kit\n\nThe purpose of this package starter kit is to provide the data structure and development guidelines for new packages meant for the **Unity Package Manager (UPM)**.\n\nThis is the first of many steps towards an automated package publishing experience within Unity. This package starter kit is merely a fraction of the creation, edition, validation, and publishing tools that we will end up with.\n\nWe hope you enjoy your experience. You can use **#devs-packman** on Slack to provide feedback or ask questions regarding your package development efforts.\n\n## Are you ready to become a package?\nThe Package Manager is a work-in-progress for Unity and, in that sense, there are a few criteria that must be met for your package to be considered on the package list at this time:\n- **Your code accesses public Unity C# APIs only.**  If you have a native code component, it will need to ship with an official editor release.  Internal API access might eventually be possible for Unity made packages, but not at this time.\n- **Your code doesn't require security, obfuscation, or conditional access control.**  Anyone should be able to download your package and access the source code.\n\n\n## Package structure\n\n```none\n<root>\n  ├── package.json\n  ├── README.md\n  ├── CHANGELOG.md\n  ├── LICENSE.md\n  ├── Third Party Notices.md\n  ├── QAReport.md\n  ├── Editor\n  │   ├── Unity.[YourPackageName].Editor.asmdef\n  │   └── EditorExample.cs\n  ├── Runtime\n  │   ├── Unity.[YourPackageName].asmdef\n  │   └── RuntimeExample.cs\n  ├── Tests\n  │   ├── .tests.json\n  │   ├── Editor\n  │   │   ├── Unity.[YourPackageName].Editor.Tests.asmdef\n  │   │   └── EditorExampleTest.cs\n  │   └── Runtime\n  │        ├── Unity.[YourPackageName].Tests.asmdef\n  │        └── RuntimeExampleTest.cs\n  ├── Samples\n  │   └── Example\n  │       ├── .sample.json\n  │       └── SampleExample.cs\n  └── Documentation~\n       ├── your-package-name.md\n       └── Images\n```\n\n## Develop your package\nPackage development works best within the Unity Editor.  Here's how to set that up:\n\n1. Clone the Package Starter Kit repository locally.\n\n\t- In a console (or terminal) application, choose a place to clone the repository and enter the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.package-starter-kit.git\n\t\t```\n\n1. Create a new repository for your package and clone to your desktop.\n\n\t- On Github.cds create a new repository with the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n\t- In a console (or terminal) application, choose a place to clone the repository and perform the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.[your-package-name]\n\t\t```\n\n1. Copy the contents of the Package Starter Kit folder to your new package.  Be careful not to copy the Package Starter Kit *.git* folder over.\n\n1. **Fill in your package information.**\n\n  Follow the instructions for [filling out your package manifest](#fill-out-your-package-manifest) (*package.json*). \n\n  Then update the `\"createSeparatePackage\"` field in the *Tests/.tests.json* file to set up testing for Continuous Integration (CI):\n\n  * Set it to false if you want the tests to remain part of the published package. This is the default value.\n\n  * Set it to true if you want the CI to create a separate package for these tests, and add the metadata at publish time to link the packages together. This allows you to have a large number of tests, or assets, etc. that you don't want to include in your main package, while making it easy to test your package with those tests & fixtures.\n\n1. Start **Unity**, create a local empty project and import your package into the project.\n\n1. In a console (or terminal) application, push the package starter kit files you copied in your new package repository to its remote.\n\t- Add them to your repository's list to version\n\t\t```git add .```\n\t- Commit to your new package's remote master\n\t\t```git commit```\n\t- Push to your new package's remote master\n\t\t```git push```\n\n1. Restart **Unity**. This forces the Package Manager to rescan your project so that it can find the new package that you just embedded. For more information on embedded packages see [Confluence](https://confluence.hq.unity3d.com/display/PAK/How+to+embed+a+package+in+your+project).\n\n1. **Update the *README.md* file.**\n\n\tIt should contain all pertinent information for developers using your package, such as:\n\n\t* Prerequistes\n\t* External tools or development libraries\n\t* Required installed Software\n\t* Command line examples to build, test, and run your package.\n\n1. **Rename and update your documentation file(s).**\n\n\tUse the samples included in this starter kit to create preliminary, high-level documentation. Your documentation should introduce users to the features and sample files included in your package. For more information, see [Document your package](#document-your-package).\n\n1. **Rename and update assembly definition files.**\n\n\t\n\tChoose a name schema to ensure that the name of the assembly built from the assembly definition file (_.asmdef_) will follow the .Net [Framework Design Guidelines](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index). For more information, see [Name your assembly definition files](#name-your-assembly-definition-files).\n\t\n1. **Add samples to your package (code & assets).**\n\n\tThe Package Manager recognizes the *Samples* directory in a package but does not import samples into Unity when the package is added to a project by default. Users can import samples into their */Assets* directory by clicking the **Import in project** button from the [Details view](https://docs.unity3d.com/Manual/upm-ui-details.html) of your package in the Package Manager window.\n\n\tIf your package contains a sample:\n\n\t* Rename the *Samples/Example* folder, and update the *.sample.json* file in it.\n\n\t* If your package contains multiple samples, make a copy of the *Samples/Example* folder for each sample, and update each *.sample.json* file accordingly.\n\n\tDelete the *Samples* folder altogether if your package does not need samples.\n\n1. **Validate your package using the Validation Suite.**\n\n\tBefore you publish your package, you need to make sure that it passes all the necessary validation checks by using the [Package Validation Suite](https://github.cds.internal.unity3d.com/unity/com.unity.package-validation-suite) extension. This is *required*.\n\n\tFor more information, see [Validate your package](#validate-your-package).\n\n1. **Follow our design guidelines**\n\n\tFollow these design guidelines when creating your package:\n\n\t* The [package design standards](https://confluence.hq.unity3d.com/display/UX/Packages) on Confluence.\n\n\t* The [design checklist](https://unitytech.github.io/unityeditor-hig/topics/checklist.html) from Unity's Human Interface Guidelines.\n\n\t* The namespace for code in the asmdef *must* match the asmdef name, except the initial `Unity`, which should be replaced with `UnityEngine` or `UnityEditor`.\n\n\t* For **Runtime code**, only use the `Unity` namespace for code that has no dependency on anything in `UnityEngine` or `UnityEditor` and instead uses `ECS` and other `Unity`-namespace systems.\n\n1. **Add tests to your package.**\n\n\tFor **Editor tests**:\n\t* Write all your Editor Tests in *Tests/Editor*\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Editor code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Editor.Tests\")]`.\n\n\tFor **Playmode Tests**:\n\t* Write all your Playmode Tests in *Tests/Runtime*.\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Runtime code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Tests\")]`.\n\n1. **Setup your package CI.**\n\n\tMake sure your package continues to work against trunk or any other branch by setting up automated testing on every commit. See the [Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that explains how to set up your package CI.\n\n\tThis starter kit contains the minimum recommended workflow for package CI, which provides the barebones to: `pack`, `test` and `publish` your packages. It also contains the required configuration to `promote` your **preview** packages to production.\n\n1. **Update *CHANGELOG.md*.**\n\n\tEvery new feature or bug fix should have a trace in this file. For more details on the chosen changelog format, see [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).\n\n\n\n### Fill out your package manifest\n\n1. Update the following required fields in file *package.json* (see [Confluence](https://confluence.hq.unity3d.com/pages/viewpage.action?pageId=39065257) for more information):\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"name\"` | Set the package name, following this naming convention: `\"com.unity.[your-package-name]\"`, without capital letters. For example, `\"com.unity.2d.animation\"`. |\n\t| `\"displayName\"` | Set the package's user-friendly display name. For example, `\"Terrain Builder SDK\"`. <br><br>__Note:__ Use a display name that will help users understand what your package is intended for. |\n\t| `\"version\"` | Set the package version in `\"X.Y.Z\"` format, following these [Semantic Versioning](http://semver.org/spec/v2.0.0.html) guidelines:<br>- To introduce a breaking API change, increment the major version (**X**.Y.Z).<br>- To introduce a new feature, increment the minor version (X.**Y**.Z).<br>- To introduce a bug fix, increment the patch version (X.Y.**Z**) |\n\t| `\"unity\"` | Set the Unity version your package is compatible with. For example: `\"2018.1\"`. |\n\t| `\"unityRelease\"` | Specify the Unity patch release your package is compatible with. For example: `\"0a8\"`.<br/><br/>__Note:__ This field is only required when the specific Unity version has a patch release. |\n\t| `\"description\"` | This description appears in the Package Manager window when the user selects this package from the list. For best results, use this text to summarize what the package does and how it can benefit the user.<br><br>Special formatting characters are supported, including line breaks (`\\n`) and unicode characters such as bullets (`\\u25AA`). For more information, see the [Writing Package docs](https://confluence.hq.unity3d.com/display/DOCS/Writing+Package+docs) page on Confluence. |\n\n1. Update the following recommended fields in file **package.json**:\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"dependencies\"` | List of packages this package depends on.  All dependencies will also be downloaded and loaded in a project with your package.  Here's an example:<br/><br/>`dependencies: {`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.ads\": \"1.0.0\",`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.analytics\": \"2.0.0\"`<br/>`}` |\n\t| `\"keywords\"` | An array of keywords related to the package. This field is currently purely informational. |\n\t| `\"type\"` | The type of your package. This is used to determine the visibility of your package in the Project Browser and the visibility of its Assets in the Object Picker. The `\"tool\"` and `\"library\"` types are used to set your package and its Assets as hidden by default. If not present or set to another value, your package and its Assets are visible by default. |\n\t| `\"hideInEditor\"` | A boolean value that overrides the package visibility set by the package type. If set to `false`, the default value, your package and its Assets are **always** visible by default; if set to `true`, your package and its Assets are **always** hidden by default. |\n\n\t**Notes**:\n\t- For packages in development, neither `\"type\"` nor `\"hideInEditor\"` are used. The package is **always** visible in the Project Browser and its Assets are **always** visible in the Object Picker.\n\t- The user is **always** able to toggle the package visibility in the Project Browser, as well as their Assets visibility in the Object Picker.\n\n### Document your package\n\nYou need to document your public APIs and provide task-oriented documentation for your features:\n\n1. Document all of [your public APIs](#document-your-public-apis) and [your features](#document-your-features).\n2. [Test your documentation locally](#test-your-documentation-locally).\n3. [Get your documentation published](#get-your-documentation-published).\n\nYour package should include the documentation source in your package, but not the generated HTML.\n\nThe page in the user manual that links to package documentation is [Packages documentation](http://docs.hq.unity3d.com/Documentation/Manual/PackagesList.html).\n\n#### Document your public APIs\n\nAPI documentation is generated from any [XmlDoc tagged comments](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments) found in the *.cs* files included in the package.  \n\nYou can use Visual Studio to autogenerate the correct tags by entering the documentation comments (`///`) in the empty line above your code. Visual Studio automatically detects which tags your code needs and inserts them. For example, if you write a method with two parameters that returns a value, Visual Studio gives you the **summary** tag (for the method description), two **param** tags, and one **returns** tag:\n\n```c#\n/// <summary>\n///\n/// </summary>\n/// <param name=\"One\"></param>\n/// <param name=\"Two\"></param>\n/// <returns></returns>\npublic bool TestingXmlDoc(int One, int Two)\n{\n\n}\n```\n\nSee the [Editor/EditorExample.cs](Editor/EditorExample.cs) file in this package for examples of how to document classes, methods, properties, and enums.\n\nYou need to document all public APIs. If you don't need an API to be accessed by clients, mark it as internal instead:\n\n1. Add a custom *filter.yml* file to the package *Documentation~* folder.  \n\n2. Add these rules to your custom *filter.yml* file. These rules make the DocFX configuration consistent with packages that don't have a custom filter:\n\n\t```yaml\n\tapiRules:\n\t  - exclude:\n\t    # inherited Object methods\n\t    uidRegex: ^System\\.Object\\..*$\n\t    type: Method\n\t  - exclude:\n\t    # mentioning types from System.* namespace\n\t    uidRegex: ^System\\..*$\n\t    type: Type\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Member\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Type\n\t```\n\n3. Specify classes to exclude by UID or by specifying regular expressions. For information about the rules for the filters, see the [DocFX guide](https://dotnet.github.io/docfx/tutorial/howto_filter_out_unwanted_apis_attributes.html).\n\n#### Document your features\n\nWrite the Manual documentation using [GitHub-flavored Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) in *.md* files stored under the *Documentation~* folder. The *Documentation~* folder is suffixed with `~` to prevent its contents from being loaded in the Editor (recommended). Alternatively, you could use *.Documentation* for the folder name.\n\nThis preliminary, high-level documentation should introduce users to the features and sample files included in your package.\n\nAll packages that expose UI in editor or runtime features should use one of the appropriate documentation example guides under the *Documentation~* folder:\n\n* [tools-package-guide.md](Documentation~/tools-package-guide.md) for a package that includes features that augment the Unity Editor or Runtime (modules, tools, and libraries)\n* [sample-package-guide.md](Documentation~/sample-package-guide.md) for a package that includes sample files\n* [test-package-guide.md](Documentation~/test-package-guide.md) for a package that provides tests\n\nFor instructions, see the [documentation guidelines](Documentation~/index.md).\n\n#### Test your documentation locally\n\nAs you are developing your documentation, you can see what your documentation will look like by using the DocTools package: **com.unity.package-manager-doctools** (optional).\n\nOnce the DocTools package is installed, it displays a **Generate Documentation** button in the Package Manager window's Details view for any installed or embedded packages. To install the extension, see [Installing the DocTools package](https://confluence.hq.unity3d.com/display/DOCS/Package+documentation+with+Git#PackagedocumentationwithGit-InstallingDocTools) on Confluence.\n\nThe DocTools extension is still in preview, if you come across arguable results, please discuss them on **#docs-packman**.\n\n#### Get your documentation published\n\nWhen the documentation is complete, notify the technical writer assigned to your team or project. If you don't know which technical writer is assigned, fill out the [Package Docs Questions](https://docs.google.com/document/d/1vI0zbNX9OausEwYhg_kl9CIDNf4taExjON0fyp2cHS0) form, [log a JIRA DOC ticket](https://unity3d.atlassian.net/secure/CreateIssue!default.jspa?selectedProjectId=12200&issuetype=3) and attach the form to that ticket.\n\nYou can also ask for help or clarification on **#devs-documentation**.\n\n> **Note:** The package will remain in **preview** mode until the final documentation is completed.  Users will have access to the developer-generated documentation only in preview packages.\n\nAfter the technical writer reviews the documentation, they will create a pull request in the package git repository. The package's development team will then need to submit a new package version with the updated docs.\n\n\n\n### Name your assembly definition files\n\nIf your package contains Editor code, rename and modify [Editor/Unity.YourPackageName.Editor.asmdef](Editor/Unity.YourPackageName.Editor.asmdef). Otherwise, delete the *Editor* directory.\n\n* Name **must** match your package name, suffixed by `.Editor` (for example, `Unity.[YourPackageName].Editor`).\n* Assembly **must** reference `Unity.[YourPackageName]` (if you have any runtime code).\n* Platforms **must** include `\"Editor\"`.\n\nIf your package contains code that needs to be included in Unity runtime builds, rename and modify [Runtime/Unity.YourPackageName.asmdef](Runtime/Unity.YourPackageName.asmdef). Otherwise, delete the *Runtime* directory.\n\n* Name **must** match your package name (for example,`Unity.[YourPackageName]`)\n\nIf your package has Editor code, you **must** have Editor Tests. In that case, rename and modify [Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef](Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Editor.Tests` (for example, `Unity.[YourPackageName].Editor.Tests`)\n* Assembly **must** reference `Unity.[YourPackageName].Editor` and `Unity.[YourPackageName]` (if you have any Runtime code).\n* Platforms **must** include `\"Editor\"`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Editor Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\nIf your package has Runtime code, you **must** have Playmode Tests. In that case, rename and modify [Tests/Runtime/Unity.YourPackageName.Tests.asmdef](Tests/Runtime/Unity.YourPackageName.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Tests` (for example, `Unity.[YourPackageName].Tests`)\n* Assembly **must** reference `Unity.[YourPackageName]`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Playmode Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\n\n\n### Validate your package\n\nTo install the extension, follow these steps:\n\n1. Make sure you have `Package Manager UI v1.9.6` or above.\n\n2. Make sure your project manifest points to the Candidates registry, which you can do by changing the **registry** line to:\n\n\t```json\n\t\"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n\t```\n\n3. From the Package Manager window, install the latest version of the **Package Validation Suite** with the scope set to **All Packages**. If you don't see it in the list, make sure **Advanced** &gt; **Show preview packages** is enabled.\n\nOnce the Validation Suite package is installed, a **Validate** button appears in the details pane when you select your installed package from the Package Manager window.\n\nTo run the tests:\n\n1. Click the **Validate** button to run a series of tests. A **See Results** button appears after the test run.\n2. Click the **See Results** button for additional explanation:\n\t* If it succeeds, a green bar displays a **Success** message.\n\t* If it fails, a red bar displays a **Failed** message.\n\nThe validation suite is still in preview, so if you come across arguable results, please discuss them on **#devs-packman**.\n\n\n\n## Create a Pre-Release Package\nPre-Release Packages are a great way of getting your features in front of Unity Developers in order to get early feedback on functionality and UI designs. Pre-Release packages need to go through the publishing to production flow, as would any other package, but with diminished requirements:\n\n  * Expected Package structure respected\n  * Package loads in Unity Editor without errors\n  * License file present - With third party notices file if necessary\n  * Test coverage is good - Optional but preferred\n  * Public APIs documented, minimal feature docs exists- Optional but preferred\n\nThe only supported Pre-Release tag is **preview** which you suffix to the version number of the package in the *package.json* manifest file. For example:\n\n```json\n\"version\" : \"1.2.0-preview\"\n```\n\n\n\n## Register your package\n\nIf you think you are working on a feature that is a good package candidate, please take a minute to tell Release Management about it in the **#devs-pkg-promotion** channel.\n\nWorking with the board of dev directors and with product management, we will schedule the entry of the candidates in the ecosystem, based on technical challenges and on our feature roadmap.\nDon’t hesitate to reach out and join us on **#devs-packman** on Slack.\n\n## Share your package\n\nIf you want to share your project with other developers, the steps are similar to what's presented above. On the other developer's machine:\n\n1. Start **Unity** and create a local empty project.\n\n1. Launch the console (or terminal) application, navigate to the newly created project folder, and then clone your repository in the `Packages` directory:\n\n    ```shell\n    cd <YourProjectPath>/Packages\n    git clone https://github.cdsinternal.unity3d.com/unity/[your-package-name].git com.unity.[sub-group].[your-package-name]\n    ```\n    > __Note:__ Your directory name must be the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n## Make sure your package meets all legal requirements\n\nAll packages must COMPLETE AND SUBMIT [THIS FORM](https://docs.google.com/forms/d/e/1FAIpQLSe3H6PARLPIkWVjdB_zMvuIuIVtrqNiGlEt1yshkMCmCMirvA/viewform) to receive approval. It is a simple, streamlined form that tells legal if there are any potential issues that need to be addressed prior to publication.\n\nIf your package has third-party elements and its licenses are approved, then all the licenses must be added to the **Third Party Notices.md** file. If you have more than one license, duplicate the `Component Name/License Type/Provide License Details` section for each additional license.\n\n> **Note:** A URL can work as long as it actually points to the reproduced license and the copyright information _(if applicable)_.\n\nIf your package does not have third party elements, you can remove the *Third Party Notices.md* file from your package.\n\n## Preparing your package for the Candidates registry\n\nBefore publishing your package to production, you must send your package on the Package Manager's internal **candidates** repository.  The candidates repository is monitored by QA and release management, and is where package validation will take place before it is accepted in production.\n\n1. Publishing your changes to the Package Manager's **Candidates** registry happens from Github.cds.  To do so, set up your project's Continuous integration (CI), which will be triggered by \"Tags\" on your branches.\n\n\tFor information see [the Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that describes how to set up CI for your package.\n\n1. Test your package locally. Once your package is published on the **Candidates** registry, you can test your package in the editor by creating a new project, and editing the project's *manifest.json* file to point to your candidate package:\n\n      ```json\n      dependencies: {\n        \"com.unity.[sub-group].[your-package-name]\": \"0.1.0\"\n      },\n      \"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n      ```\n\n## Get your package published to Production\n\nPackages are promoted to the **Production** registry from the **Candidates** registry, as described above. Your package must meet [certain criteria](https://docs.google.com/document/d/1TSnlSKJ6_h0C-CYO2LvV0fyGxJvH6OxC2-heyN8o-Gw/edit#heading=h.xxfb5jk2jda2) before you can submit a request to promote a package to production.\n\nOnce you feel comfortable that your package meets the list of Release Management Criteria, ask to be promoted from candidates to production by going to **#devs-pkg-promotion**.\n\nAlso, once you have a package in production for a few versions and it was used by real users, you can ask to be whitelisted to appear in the Package Manager window. Your package will not be visible in the Package Manager window until it is published AND whitelisted by Release Management.\n\n**_Release management will validate your package content, and check that the editor/playmode tests pass before promoting the package to production._**\n\n### Verified status and bundled packages\nIf your package is meant to ship with a release of the editor (**Verified Packages** and **Bundled Packages**), follow these steps:\n1. To be marked as verified, in trunk, modify the editor manifest (*[root]\\External\\PackageManager\\Editor\\manifest.json*) to include your package in the **verified** list.\n\n1. If your package is not verified, but only bundled with the editor, submit one or more Test Project(s) in Ono, so that your new package can be tested in all ABVs moving forward.\n\n\tThe following steps will create a test project that will run in ABVs, load your package into the project, and run all the tests found in your package. The better your test coverage, the more confident you'll be that your package works with trunk.\n\n\t* Create a branch in Ono, based on the latest branch this package must be compatible with (trunk, or release branch).\n\t* If your package contains **Editor Tests**:\n\t\t* In *[root]\\Tests\\Editor.Tests*, create a new EditorTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t\tTo get a bare package for an EditorTest Project, click [here](https://oc.unity3d.com/index.php/s/Cldvuy6NpxqYy8y).\n\n\t\t* Modify the project’s *manifest.json* file to include the production version of the package (`name@version`).\n\n\t\t* Your project's *manifest.json* file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\t* If your package contains **PlaymodeTests**:\n\t\t* In *[root]\\Tests\\PlaymodeTests*, create a new PlaymodeTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t* Modify the project’s *manifest.json* file to include the candidate version of the package (`name@version`).\n\n\t\t* Your project's manifest.json file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\n\t\t* Commit your branch changes to Ono, and run all Windows & Mac Editor/PlayMode tests (not full ABV) in Katana.\n\n1. Once the tests are green on Katana, create your PR, add both **Latest Release Manager** and **Trunk Merge Queue** as reviewers.\n\n\n## FAQ\n\n**What’s the difference between a preview package and a verified package?**\n\nA preview package is a great way to develop and get feedback on new features and functionality.  Preview package can be created against any version of Unity 2018.1+, and can be made discoverable through the Package Manager UI by issuing a request in #devs-packman.  Quality and release schedule is up to the package owner, although minimum bars are set in place to ensure the package contains the right licenses, documentation, and a comprehensive set of tests.\n\nOnce a preview package has been in the field for 2-3 release cycles of the editor, that package can be considered for Verification. Verified packages are tested with a specific version of the editor, and offer our users a compatibility guarantee.  Verified packages are the only packages that can be included in the set of templates we ship with the editor (Verified Templates).  Code for these packages must follow core development guidelines, including code cutoff dates, and are tested in katana for continued compatibility.\n\n**What’s the difference between a core package and a default package?**\n\nA core package is a package that has its code included with the Editor’s core code. This is interesting for packages that plan to change enormously in parallel to editor APIs. By moving package code to the editor’s repo, both core API\\functionality changes can be made along with required packages changes in the same PR.\nhttps://docs.google.com/document/d/1CMoanjR3KAdew-6n39JdCFmHkTp1oshs3vkpejapf4Q/edit\n\nA default package is a verified package that gets installed with every new project users create, regardless of the template they use. We should limit the number of default packages we support, as each default package adds to the project loading time. The list of default packages can be found in the editor manifest (https://ono.unity3d.com/unity/unity/files/de904b9ed9b44580ecd1e883f510daaa08182cc5/External/PackageManager/Editor/manifest.json).\n\n**What are the requirement for me to publish a preview package?**\n\nhttps://docs.google.com/document/d/1epGkAJRayJLN89_weA_-G5LFT_1uFifFZqBzAgvp_Zs/\n\n\n**What are the requirements for me to get my package verified for a version of unity?**\n\nhttps://docs.google.com/document/d/1oWC9XArVfkGMnqN9azR4hW4Pcd7-kQQw8Oy7ckP43JE/\n\n**How is my verified package tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How is my template tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How do I add samples to my package?**\n\nhttps://docs.google.com/document/d/1rmxGh6Z9gtbQlGUKCsVBaR0RyHvzq_gsWoYs6sttzYA/edit#heading=h.fg1e3sz56048\n\n**How do I setup CI or publishing options for my package?**\nhttps://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI\n\n**How can I add tests to my package?**\n\nThere’s a “Tests” directory in the package starter kit. If you add editor and playmode tests in that directory, they will make up the list of tests for your package.\n\n**The tests in my package bloat my package too much, what are my options?**\n\nhttps://docs.google.com/document/d/19kKIGFetde5ES-gKXQp_P7bxQ9UgBnBUu58-y7c1rTA/edit\n\n**Can I automate my package publishing yet?**\n\nNot just yet, but we’re working on it. The first automated publishing we will enable is the push to production for preview packages. Basically, when your package passes validation (loads in the editor without error, the tests in the package pass, validation suite run success), the package will be pushed to production automatically. Other publishing flows will soon be available as well, here’s the full list of internal package publishing flows Unity will support.  https://docs.google.com/document/d/1zdMzAtfi-vgM8NMPmwL40yinBeL3YImwTO5gSfGNCgs/edit\n\n**How do I get a template package started?**\n\nStart with the Project Template Starter Kit (you can request access in **#devs-packman**).\nhttps://github.cds.internal.unity3d.com/unity/com.unity.template-starter-kit\n\n**How do I get my package included in a template?**\n\nFirst and foremost, your package needs to be on the verified list of packages.  Only verified packages can get added to templates we ship with the editor. Then reach out to the templates community in **#devs-template** to open discussions on adding your package to one or more of our existing templates.\n\n**How can I test my package locally, as a user would?**\n\nhttps://confluence.hq.unity3d.com/display/PAK/How+to+add+a+git+package+to+your+project\n\n**What tests are included by the validation suite?**\n\nhttps://docs.google.com/spreadsheets/d/1CdO7D0WSirbZhjnVsdJxJwOPK4UdUDxSRBIqwyjm70w/edit#gid=0\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"}],"_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"ec841c2f6c39ccd5c0138306f24db7ad69ece916"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"3.0.2"},"name":"com.unity.purchasing","version":"3.0.2","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"1b488f7728e2806d5a8dab43e587f5b4141aec7e","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-3.0.2.tgz"}},"3.0.1":{"_id":"com.unity.purchasing@3.0.1","type":"asset","unity":"2019.4","upmCi":{"footprint":"c38876eeff1bd9e649231f4074a92d097222db04"},"readme":"# UPM Package Starter Kit\n\nThe purpose of this package starter kit is to provide the data structure and development guidelines for new packages meant for the **Unity Package Manager (UPM)**.\n\nThis is the first of many steps towards an automated package publishing experience within Unity. This package starter kit is merely a fraction of the creation, edition, validation, and publishing tools that we will end up with.\n\nWe hope you enjoy your experience. You can use **#devs-packman** on Slack to provide feedback or ask questions regarding your package development efforts.\n\n## Are you ready to become a package?\nThe Package Manager is a work-in-progress for Unity and, in that sense, there are a few criteria that must be met for your package to be considered on the package list at this time:\n- **Your code accesses public Unity C# APIs only.**  If you have a native code component, it will need to ship with an official editor release.  Internal API access might eventually be possible for Unity made packages, but not at this time.\n- **Your code doesn't require security, obfuscation, or conditional access control.**  Anyone should be able to download your package and access the source code.\n\n\n## Package structure\n\n```none\n<root>\n  ├── package.json\n  ├── README.md\n  ├── CHANGELOG.md\n  ├── LICENSE.md\n  ├── Third Party Notices.md\n  ├── QAReport.md\n  ├── Editor\n  │   ├── Unity.[YourPackageName].Editor.asmdef\n  │   └── EditorExample.cs\n  ├── Runtime\n  │   ├── Unity.[YourPackageName].asmdef\n  │   └── RuntimeExample.cs\n  ├── Tests\n  │   ├── .tests.json\n  │   ├── Editor\n  │   │   ├── Unity.[YourPackageName].Editor.Tests.asmdef\n  │   │   └── EditorExampleTest.cs\n  │   └── Runtime\n  │        ├── Unity.[YourPackageName].Tests.asmdef\n  │        └── RuntimeExampleTest.cs\n  ├── Samples\n  │   └── Example\n  │       ├── .sample.json\n  │       └── SampleExample.cs\n  └── Documentation~\n       ├── your-package-name.md\n       └── Images\n```\n\n## Develop your package\nPackage development works best within the Unity Editor.  Here's how to set that up:\n\n1. Clone the Package Starter Kit repository locally.\n\n\t- In a console (or terminal) application, choose a place to clone the repository and enter the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.package-starter-kit.git\n\t\t```\n\n1. Create a new repository for your package and clone to your desktop.\n\n\t- On Github.cds create a new repository with the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n\t- In a console (or terminal) application, choose a place to clone the repository and perform the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.[your-package-name]\n\t\t```\n\n1. Copy the contents of the Package Starter Kit folder to your new package.  Be careful not to copy the Package Starter Kit *.git* folder over.\n\n1. **Fill in your package information.**\n\n  Follow the instructions for [filling out your package manifest](#fill-out-your-package-manifest) (*package.json*). \n\n  Then update the `\"createSeparatePackage\"` field in the *Tests/.tests.json* file to set up testing for Continuous Integration (CI):\n\n  * Set it to false if you want the tests to remain part of the published package. This is the default value.\n\n  * Set it to true if you want the CI to create a separate package for these tests, and add the metadata at publish time to link the packages together. This allows you to have a large number of tests, or assets, etc. that you don't want to include in your main package, while making it easy to test your package with those tests & fixtures.\n\n1. Start **Unity**, create a local empty project and import your package into the project.\n\n1. In a console (or terminal) application, push the package starter kit files you copied in your new package repository to its remote.\n\t- Add them to your repository's list to version\n\t\t```git add .```\n\t- Commit to your new package's remote master\n\t\t```git commit```\n\t- Push to your new package's remote master\n\t\t```git push```\n\n1. Restart **Unity**. This forces the Package Manager to rescan your project so that it can find the new package that you just embedded. For more information on embedded packages see [Confluence](https://confluence.hq.unity3d.com/display/PAK/How+to+embed+a+package+in+your+project).\n\n1. **Update the *README.md* file.**\n\n\tIt should contain all pertinent information for developers using your package, such as:\n\n\t* Prerequistes\n\t* External tools or development libraries\n\t* Required installed Software\n\t* Command line examples to build, test, and run your package.\n\n1. **Rename and update your documentation file(s).**\n\n\tUse the samples included in this starter kit to create preliminary, high-level documentation. Your documentation should introduce users to the features and sample files included in your package. For more information, see [Document your package](#document-your-package).\n\n1. **Rename and update assembly definition files.**\n\n\t\n\tChoose a name schema to ensure that the name of the assembly built from the assembly definition file (_.asmdef_) will follow the .Net [Framework Design Guidelines](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index). For more information, see [Name your assembly definition files](#name-your-assembly-definition-files).\n\t\n1. **Add samples to your package (code & assets).**\n\n\tThe Package Manager recognizes the *Samples* directory in a package but does not import samples into Unity when the package is added to a project by default. Users can import samples into their */Assets* directory by clicking the **Import in project** button from the [Details view](https://docs.unity3d.com/Manual/upm-ui-details.html) of your package in the Package Manager window.\n\n\tIf your package contains a sample:\n\n\t* Rename the *Samples/Example* folder, and update the *.sample.json* file in it.\n\n\t* If your package contains multiple samples, make a copy of the *Samples/Example* folder for each sample, and update each *.sample.json* file accordingly.\n\n\tDelete the *Samples* folder altogether if your package does not need samples.\n\n1. **Validate your package using the Validation Suite.**\n\n\tBefore you publish your package, you need to make sure that it passes all the necessary validation checks by using the [Package Validation Suite](https://github.cds.internal.unity3d.com/unity/com.unity.package-validation-suite) extension. This is *required*.\n\n\tFor more information, see [Validate your package](#validate-your-package).\n\n1. **Follow our design guidelines**\n\n\tFollow these design guidelines when creating your package:\n\n\t* The [package design standards](https://confluence.hq.unity3d.com/display/UX/Packages) on Confluence.\n\n\t* The [design checklist](https://unitytech.github.io/unityeditor-hig/topics/checklist.html) from Unity's Human Interface Guidelines.\n\n\t* The namespace for code in the asmdef *must* match the asmdef name, except the initial `Unity`, which should be replaced with `UnityEngine` or `UnityEditor`.\n\n\t* For **Runtime code**, only use the `Unity` namespace for code that has no dependency on anything in `UnityEngine` or `UnityEditor` and instead uses `ECS` and other `Unity`-namespace systems.\n\n1. **Add tests to your package.**\n\n\tFor **Editor tests**:\n\t* Write all your Editor Tests in *Tests/Editor*\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Editor code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Editor.Tests\")]`.\n\n\tFor **Playmode Tests**:\n\t* Write all your Playmode Tests in *Tests/Runtime*.\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Runtime code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Tests\")]`.\n\n1. **Setup your package CI.**\n\n\tMake sure your package continues to work against trunk or any other branch by setting up automated testing on every commit. See the [Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that explains how to set up your package CI.\n\n\tThis starter kit contains the minimum recommended workflow for package CI, which provides the barebones to: `pack`, `test` and `publish` your packages. It also contains the required configuration to `promote` your **preview** packages to production.\n\n1. **Update *CHANGELOG.md*.**\n\n\tEvery new feature or bug fix should have a trace in this file. For more details on the chosen changelog format, see [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).\n\n\n\n### Fill out your package manifest\n\n1. Update the following required fields in file *package.json* (see [Confluence](https://confluence.hq.unity3d.com/pages/viewpage.action?pageId=39065257) for more information):\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"name\"` | Set the package name, following this naming convention: `\"com.unity.[your-package-name]\"`, without capital letters. For example, `\"com.unity.2d.animation\"`. |\n\t| `\"displayName\"` | Set the package's user-friendly display name. For example, `\"Terrain Builder SDK\"`. <br><br>__Note:__ Use a display name that will help users understand what your package is intended for. |\n\t| `\"version\"` | Set the package version in `\"X.Y.Z\"` format, following these [Semantic Versioning](http://semver.org/spec/v2.0.0.html) guidelines:<br>- To introduce a breaking API change, increment the major version (**X**.Y.Z).<br>- To introduce a new feature, increment the minor version (X.**Y**.Z).<br>- To introduce a bug fix, increment the patch version (X.Y.**Z**) |\n\t| `\"unity\"` | Set the Unity version your package is compatible with. For example: `\"2018.1\"`. |\n\t| `\"unityRelease\"` | Specify the Unity patch release your package is compatible with. For example: `\"0a8\"`.<br/><br/>__Note:__ This field is only required when the specific Unity version has a patch release. |\n\t| `\"description\"` | This description appears in the Package Manager window when the user selects this package from the list. For best results, use this text to summarize what the package does and how it can benefit the user.<br><br>Special formatting characters are supported, including line breaks (`\\n`) and unicode characters such as bullets (`\\u25AA`). For more information, see the [Writing Package docs](https://confluence.hq.unity3d.com/display/DOCS/Writing+Package+docs) page on Confluence. |\n\n1. Update the following recommended fields in file **package.json**:\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"dependencies\"` | List of packages this package depends on.  All dependencies will also be downloaded and loaded in a project with your package.  Here's an example:<br/><br/>`dependencies: {`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.ads\": \"1.0.0\",`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.analytics\": \"2.0.0\"`<br/>`}` |\n\t| `\"keywords\"` | An array of keywords related to the package. This field is currently purely informational. |\n\t| `\"type\"` | The type of your package. This is used to determine the visibility of your package in the Project Browser and the visibility of its Assets in the Object Picker. The `\"tool\"` and `\"library\"` types are used to set your package and its Assets as hidden by default. If not present or set to another value, your package and its Assets are visible by default. |\n\t| `\"hideInEditor\"` | A boolean value that overrides the package visibility set by the package type. If set to `false`, the default value, your package and its Assets are **always** visible by default; if set to `true`, your package and its Assets are **always** hidden by default. |\n\n\t**Notes**:\n\t- For packages in development, neither `\"type\"` nor `\"hideInEditor\"` are used. The package is **always** visible in the Project Browser and its Assets are **always** visible in the Object Picker.\n\t- The user is **always** able to toggle the package visibility in the Project Browser, as well as their Assets visibility in the Object Picker.\n\n### Document your package\n\nYou need to document your public APIs and provide task-oriented documentation for your features:\n\n1. Document all of [your public APIs](#document-your-public-apis) and [your features](#document-your-features).\n2. [Test your documentation locally](#test-your-documentation-locally).\n3. [Get your documentation published](#get-your-documentation-published).\n\nYour package should include the documentation source in your package, but not the generated HTML.\n\nThe page in the user manual that links to package documentation is [Packages documentation](http://docs.hq.unity3d.com/Documentation/Manual/PackagesList.html).\n\n#### Document your public APIs\n\nAPI documentation is generated from any [XmlDoc tagged comments](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments) found in the *.cs* files included in the package.  \n\nYou can use Visual Studio to autogenerate the correct tags by entering the documentation comments (`///`) in the empty line above your code. Visual Studio automatically detects which tags your code needs and inserts them. For example, if you write a method with two parameters that returns a value, Visual Studio gives you the **summary** tag (for the method description), two **param** tags, and one **returns** tag:\n\n```c#\n/// <summary>\n///\n/// </summary>\n/// <param name=\"One\"></param>\n/// <param name=\"Two\"></param>\n/// <returns></returns>\npublic bool TestingXmlDoc(int One, int Two)\n{\n\n}\n```\n\nSee the [Editor/EditorExample.cs](Editor/EditorExample.cs) file in this package for examples of how to document classes, methods, properties, and enums.\n\nYou need to document all public APIs. If you don't need an API to be accessed by clients, mark it as internal instead:\n\n1. Add a custom *filter.yml* file to the package *Documentation~* folder.  \n\n2. Add these rules to your custom *filter.yml* file. These rules make the DocFX configuration consistent with packages that don't have a custom filter:\n\n\t```yaml\n\tapiRules:\n\t  - exclude:\n\t    # inherited Object methods\n\t    uidRegex: ^System\\.Object\\..*$\n\t    type: Method\n\t  - exclude:\n\t    # mentioning types from System.* namespace\n\t    uidRegex: ^System\\..*$\n\t    type: Type\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Member\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Type\n\t```\n\n3. Specify classes to exclude by UID or by specifying regular expressions. For information about the rules for the filters, see the [DocFX guide](https://dotnet.github.io/docfx/tutorial/howto_filter_out_unwanted_apis_attributes.html).\n\n#### Document your features\n\nWrite the Manual documentation using [GitHub-flavored Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) in *.md* files stored under the *Documentation~* folder. The *Documentation~* folder is suffixed with `~` to prevent its contents from being loaded in the Editor (recommended). Alternatively, you could use *.Documentation* for the folder name.\n\nThis preliminary, high-level documentation should introduce users to the features and sample files included in your package.\n\nAll packages that expose UI in editor or runtime features should use one of the appropriate documentation example guides under the *Documentation~* folder:\n\n* [tools-package-guide.md](Documentation~/tools-package-guide.md) for a package that includes features that augment the Unity Editor or Runtime (modules, tools, and libraries)\n* [sample-package-guide.md](Documentation~/sample-package-guide.md) for a package that includes sample files\n* [test-package-guide.md](Documentation~/test-package-guide.md) for a package that provides tests\n\nFor instructions, see the [documentation guidelines](Documentation~/index.md).\n\n#### Test your documentation locally\n\nAs you are developing your documentation, you can see what your documentation will look like by using the DocTools package: **com.unity.package-manager-doctools** (optional).\n\nOnce the DocTools package is installed, it displays a **Generate Documentation** button in the Package Manager window's Details view for any installed or embedded packages. To install the extension, see [Installing the DocTools package](https://confluence.hq.unity3d.com/display/DOCS/Package+documentation+with+Git#PackagedocumentationwithGit-InstallingDocTools) on Confluence.\n\nThe DocTools extension is still in preview, if you come across arguable results, please discuss them on **#docs-packman**.\n\n#### Get your documentation published\n\nWhen the documentation is complete, notify the technical writer assigned to your team or project. If you don't know which technical writer is assigned, fill out the [Package Docs Questions](https://docs.google.com/document/d/1vI0zbNX9OausEwYhg_kl9CIDNf4taExjON0fyp2cHS0) form, [log a JIRA DOC ticket](https://unity3d.atlassian.net/secure/CreateIssue!default.jspa?selectedProjectId=12200&issuetype=3) and attach the form to that ticket.\n\nYou can also ask for help or clarification on **#devs-documentation**.\n\n> **Note:** The package will remain in **preview** mode until the final documentation is completed.  Users will have access to the developer-generated documentation only in preview packages.\n\nAfter the technical writer reviews the documentation, they will create a pull request in the package git repository. The package's development team will then need to submit a new package version with the updated docs.\n\n\n\n### Name your assembly definition files\n\nIf your package contains Editor code, rename and modify [Editor/Unity.YourPackageName.Editor.asmdef](Editor/Unity.YourPackageName.Editor.asmdef). Otherwise, delete the *Editor* directory.\n\n* Name **must** match your package name, suffixed by `.Editor` (for example, `Unity.[YourPackageName].Editor`).\n* Assembly **must** reference `Unity.[YourPackageName]` (if you have any runtime code).\n* Platforms **must** include `\"Editor\"`.\n\nIf your package contains code that needs to be included in Unity runtime builds, rename and modify [Runtime/Unity.YourPackageName.asmdef](Runtime/Unity.YourPackageName.asmdef). Otherwise, delete the *Runtime* directory.\n\n* Name **must** match your package name (for example,`Unity.[YourPackageName]`)\n\nIf your package has Editor code, you **must** have Editor Tests. In that case, rename and modify [Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef](Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Editor.Tests` (for example, `Unity.[YourPackageName].Editor.Tests`)\n* Assembly **must** reference `Unity.[YourPackageName].Editor` and `Unity.[YourPackageName]` (if you have any Runtime code).\n* Platforms **must** include `\"Editor\"`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Editor Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\nIf your package has Runtime code, you **must** have Playmode Tests. In that case, rename and modify [Tests/Runtime/Unity.YourPackageName.Tests.asmdef](Tests/Runtime/Unity.YourPackageName.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Tests` (for example, `Unity.[YourPackageName].Tests`)\n* Assembly **must** reference `Unity.[YourPackageName]`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Playmode Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\n\n\n### Validate your package\n\nTo install the extension, follow these steps:\n\n1. Make sure you have `Package Manager UI v1.9.6` or above.\n\n2. Make sure your project manifest points to the Candidates registry, which you can do by changing the **registry** line to:\n\n\t```json\n\t\"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n\t```\n\n3. From the Package Manager window, install the latest version of the **Package Validation Suite** with the scope set to **All Packages**. If you don't see it in the list, make sure **Advanced** &gt; **Show preview packages** is enabled.\n\nOnce the Validation Suite package is installed, a **Validate** button appears in the details pane when you select your installed package from the Package Manager window.\n\nTo run the tests:\n\n1. Click the **Validate** button to run a series of tests. A **See Results** button appears after the test run.\n2. Click the **See Results** button for additional explanation:\n\t* If it succeeds, a green bar displays a **Success** message.\n\t* If it fails, a red bar displays a **Failed** message.\n\nThe validation suite is still in preview, so if you come across arguable results, please discuss them on **#devs-packman**.\n\n\n\n## Create a Pre-Release Package\nPre-Release Packages are a great way of getting your features in front of Unity Developers in order to get early feedback on functionality and UI designs. Pre-Release packages need to go through the publishing to production flow, as would any other package, but with diminished requirements:\n\n  * Expected Package structure respected\n  * Package loads in Unity Editor without errors\n  * License file present - With third party notices file if necessary\n  * Test coverage is good - Optional but preferred\n  * Public APIs documented, minimal feature docs exists- Optional but preferred\n\nThe only supported Pre-Release tag is **preview** which you suffix to the version number of the package in the *package.json* manifest file. For example:\n\n```json\n\"version\" : \"1.2.0-preview\"\n```\n\n\n\n## Register your package\n\nIf you think you are working on a feature that is a good package candidate, please take a minute to tell Release Management about it in the **#devs-pkg-promotion** channel.\n\nWorking with the board of dev directors and with product management, we will schedule the entry of the candidates in the ecosystem, based on technical challenges and on our feature roadmap.\nDon’t hesitate to reach out and join us on **#devs-packman** on Slack.\n\n## Share your package\n\nIf you want to share your project with other developers, the steps are similar to what's presented above. On the other developer's machine:\n\n1. Start **Unity** and create a local empty project.\n\n1. Launch the console (or terminal) application, navigate to the newly created project folder, and then clone your repository in the `Packages` directory:\n\n    ```shell\n    cd <YourProjectPath>/Packages\n    git clone https://github.cdsinternal.unity3d.com/unity/[your-package-name].git com.unity.[sub-group].[your-package-name]\n    ```\n    > __Note:__ Your directory name must be the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n## Make sure your package meets all legal requirements\n\nAll packages must COMPLETE AND SUBMIT [THIS FORM](https://docs.google.com/forms/d/e/1FAIpQLSe3H6PARLPIkWVjdB_zMvuIuIVtrqNiGlEt1yshkMCmCMirvA/viewform) to receive approval. It is a simple, streamlined form that tells legal if there are any potential issues that need to be addressed prior to publication.\n\nIf your package has third-party elements and its licenses are approved, then all the licenses must be added to the **Third Party Notices.md** file. If you have more than one license, duplicate the `Component Name/License Type/Provide License Details` section for each additional license.\n\n> **Note:** A URL can work as long as it actually points to the reproduced license and the copyright information _(if applicable)_.\n\nIf your package does not have third party elements, you can remove the *Third Party Notices.md* file from your package.\n\n## Preparing your package for the Candidates registry\n\nBefore publishing your package to production, you must send your package on the Package Manager's internal **candidates** repository.  The candidates repository is monitored by QA and release management, and is where package validation will take place before it is accepted in production.\n\n1. Publishing your changes to the Package Manager's **Candidates** registry happens from Github.cds.  To do so, set up your project's Continuous integration (CI), which will be triggered by \"Tags\" on your branches.\n\n\tFor information see [the Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that describes how to set up CI for your package.\n\n1. Test your package locally. Once your package is published on the **Candidates** registry, you can test your package in the editor by creating a new project, and editing the project's *manifest.json* file to point to your candidate package:\n\n      ```json\n      dependencies: {\n        \"com.unity.[sub-group].[your-package-name]\": \"0.1.0\"\n      },\n      \"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n      ```\n\n## Get your package published to Production\n\nPackages are promoted to the **Production** registry from the **Candidates** registry, as described above. Your package must meet [certain criteria](https://docs.google.com/document/d/1TSnlSKJ6_h0C-CYO2LvV0fyGxJvH6OxC2-heyN8o-Gw/edit#heading=h.xxfb5jk2jda2) before you can submit a request to promote a package to production.\n\nOnce you feel comfortable that your package meets the list of Release Management Criteria, ask to be promoted from candidates to production by going to **#devs-pkg-promotion**.\n\nAlso, once you have a package in production for a few versions and it was used by real users, you can ask to be whitelisted to appear in the Package Manager window. Your package will not be visible in the Package Manager window until it is published AND whitelisted by Release Management.\n\n**_Release management will validate your package content, and check that the editor/playmode tests pass before promoting the package to production._**\n\n### Verified status and bundled packages\nIf your package is meant to ship with a release of the editor (**Verified Packages** and **Bundled Packages**), follow these steps:\n1. To be marked as verified, in trunk, modify the editor manifest (*[root]\\External\\PackageManager\\Editor\\manifest.json*) to include your package in the **verified** list.\n\n1. If your package is not verified, but only bundled with the editor, submit one or more Test Project(s) in Ono, so that your new package can be tested in all ABVs moving forward.\n\n\tThe following steps will create a test project that will run in ABVs, load your package into the project, and run all the tests found in your package. The better your test coverage, the more confident you'll be that your package works with trunk.\n\n\t* Create a branch in Ono, based on the latest branch this package must be compatible with (trunk, or release branch).\n\t* If your package contains **Editor Tests**:\n\t\t* In *[root]\\Tests\\Editor.Tests*, create a new EditorTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t\tTo get a bare package for an EditorTest Project, click [here](https://oc.unity3d.com/index.php/s/Cldvuy6NpxqYy8y).\n\n\t\t* Modify the project’s *manifest.json* file to include the production version of the package (`name@version`).\n\n\t\t* Your project's *manifest.json* file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\t* If your package contains **PlaymodeTests**:\n\t\t* In *[root]\\Tests\\PlaymodeTests*, create a new PlaymodeTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t* Modify the project’s *manifest.json* file to include the candidate version of the package (`name@version`).\n\n\t\t* Your project's manifest.json file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\n\t\t* Commit your branch changes to Ono, and run all Windows & Mac Editor/PlayMode tests (not full ABV) in Katana.\n\n1. Once the tests are green on Katana, create your PR, add both **Latest Release Manager** and **Trunk Merge Queue** as reviewers.\n\n\n## FAQ\n\n**What’s the difference between a preview package and a verified package?**\n\nA preview package is a great way to develop and get feedback on new features and functionality.  Preview package can be created against any version of Unity 2018.1+, and can be made discoverable through the Package Manager UI by issuing a request in #devs-packman.  Quality and release schedule is up to the package owner, although minimum bars are set in place to ensure the package contains the right licenses, documentation, and a comprehensive set of tests.\n\nOnce a preview package has been in the field for 2-3 release cycles of the editor, that package can be considered for Verification. Verified packages are tested with a specific version of the editor, and offer our users a compatibility guarantee.  Verified packages are the only packages that can be included in the set of templates we ship with the editor (Verified Templates).  Code for these packages must follow core development guidelines, including code cutoff dates, and are tested in katana for continued compatibility.\n\n**What’s the difference between a core package and a default package?**\n\nA core package is a package that has its code included with the Editor’s core code. This is interesting for packages that plan to change enormously in parallel to editor APIs. By moving package code to the editor’s repo, both core API\\functionality changes can be made along with required packages changes in the same PR.\nhttps://docs.google.com/document/d/1CMoanjR3KAdew-6n39JdCFmHkTp1oshs3vkpejapf4Q/edit\n\nA default package is a verified package that gets installed with every new project users create, regardless of the template they use. We should limit the number of default packages we support, as each default package adds to the project loading time. The list of default packages can be found in the editor manifest (https://ono.unity3d.com/unity/unity/files/de904b9ed9b44580ecd1e883f510daaa08182cc5/External/PackageManager/Editor/manifest.json).\n\n**What are the requirement for me to publish a preview package?**\n\nhttps://docs.google.com/document/d/1epGkAJRayJLN89_weA_-G5LFT_1uFifFZqBzAgvp_Zs/\n\n\n**What are the requirements for me to get my package verified for a version of unity?**\n\nhttps://docs.google.com/document/d/1oWC9XArVfkGMnqN9azR4hW4Pcd7-kQQw8Oy7ckP43JE/\n\n**How is my verified package tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How is my template tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How do I add samples to my package?**\n\nhttps://docs.google.com/document/d/1rmxGh6Z9gtbQlGUKCsVBaR0RyHvzq_gsWoYs6sttzYA/edit#heading=h.fg1e3sz56048\n\n**How do I setup CI or publishing options for my package?**\nhttps://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI\n\n**How can I add tests to my package?**\n\nThere’s a “Tests” directory in the package starter kit. If you add editor and playmode tests in that directory, they will make up the list of tests for your package.\n\n**The tests in my package bloat my package too much, what are my options?**\n\nhttps://docs.google.com/document/d/19kKIGFetde5ES-gKXQp_P7bxQ9UgBnBUu58-y7c1rTA/edit\n\n**Can I automate my package publishing yet?**\n\nNot just yet, but we’re working on it. The first automated publishing we will enable is the push to production for preview packages. Basically, when your package passes validation (loads in the editor without error, the tests in the package pass, validation suite run success), the package will be pushed to production automatically. Other publishing flows will soon be available as well, here’s the full list of internal package publishing flows Unity will support.  https://docs.google.com/document/d/1zdMzAtfi-vgM8NMPmwL40yinBeL3YImwTO5gSfGNCgs/edit\n\n**How do I get a template package started?**\n\nStart with the Project Template Starter Kit (you can request access in **#devs-packman**).\nhttps://github.cds.internal.unity3d.com/unity/com.unity.template-starter-kit\n\n**How do I get my package included in a template?**\n\nFirst and foremost, your package needs to be on the verified list of packages.  Only verified packages can get added to templates we ship with the editor. Then reach out to the templates community in **#devs-template** to open discussions on adding your package to one or more of our existing templates.\n\n**How can I test my package locally, as a user would?**\n\nhttps://confluence.hq.unity3d.com/display/PAK/How+to+add+a+git+package+to+your+project\n\n**What tests are included by the validation suite?**\n\nhttps://docs.google.com/spreadsheets/d/1CdO7D0WSirbZhjnVsdJxJwOPK4UdUDxSRBIqwyjm70w/edit#gid=0\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"}],"_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"6085954d3b18522633eb64da34545a88092f85b4"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"3.0.1"},"name":"com.unity.purchasing","version":"3.0.1","displayName":"In App Purchasing","description":"IMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0","com.unity.modules.androidjni":"1.0.0","com.unity.modules.jsonserialize":"1.0.0","com.unity.modules.unityanalytics":"1.0.0","com.unity.modules.unitywebrequest":"1.0.0"},"dist":{"shasum":"b2479d67766e497fc7bd1c550727462d38b29a28","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-3.0.1.tgz"}},"3.0.0-pre.6":{"_id":"com.unity.purchasing@3.0.0-pre.6","type":"asset","_from":"file:com.unity.purchasing-3.0.0-pre.6.tgz","unity":"2019.4","upmCi":{"footprint":"84da447610b535d811781efaf84f7c76deb1edd1"},"readme":"# UPM Package Starter Kit\n\nThe purpose of this package starter kit is to provide the data structure and development guidelines for new packages meant for the **Unity Package Manager (UPM)**.\n\nThis is the first of many steps towards an automated package publishing experience within Unity. This package starter kit is merely a fraction of the creation, edition, validation, and publishing tools that we will end up with.\n\nWe hope you enjoy your experience. You can use **#devs-packman** on Slack to provide feedback or ask questions regarding your package development efforts.\n\n## Are you ready to become a package?\nThe Package Manager is a work-in-progress for Unity and, in that sense, there are a few criteria that must be met for your package to be considered on the package list at this time:\n- **Your code accesses public Unity C# APIs only.**  If you have a native code component, it will need to ship with an official editor release.  Internal API access might eventually be possible for Unity made packages, but not at this time.\n- **Your code doesn't require security, obfuscation, or conditional access control.**  Anyone should be able to download your package and access the source code.\n\n\n## Package structure\n\n```none\n<root>\n  ├── package.json\n  ├── README.md\n  ├── CHANGELOG.md\n  ├── LICENSE.md\n  ├── Third Party Notices.md\n  ├── QAReport.md\n  ├── Editor\n  │   ├── Unity.[YourPackageName].Editor.asmdef\n  │   └── EditorExample.cs\n  ├── Runtime\n  │   ├── Unity.[YourPackageName].asmdef\n  │   └── RuntimeExample.cs\n  ├── Tests\n  │   ├── .tests.json\n  │   ├── Editor\n  │   │   ├── Unity.[YourPackageName].Editor.Tests.asmdef\n  │   │   └── EditorExampleTest.cs\n  │   └── Runtime\n  │        ├── Unity.[YourPackageName].Tests.asmdef\n  │        └── RuntimeExampleTest.cs\n  ├── Samples\n  │   └── Example\n  │       ├── .sample.json\n  │       └── SampleExample.cs\n  └── Documentation~\n       ├── your-package-name.md\n       └── Images\n```\n\n## Develop your package\nPackage development works best within the Unity Editor.  Here's how to set that up:\n\n1. Clone the Package Starter Kit repository locally.\n\n\t- In a console (or terminal) application, choose a place to clone the repository and enter the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.package-starter-kit.git\n\t\t```\n\n1. Create a new repository for your package and clone to your desktop.\n\n\t- On Github.cds create a new repository with the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n\t- In a console (or terminal) application, choose a place to clone the repository and perform the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.[your-package-name]\n\t\t```\n\n1. Copy the contents of the Package Starter Kit folder to your new package.  Be careful not to copy the Package Starter Kit *.git* folder over.\n\n1. **Fill in your package information.**\n\n  Follow the instructions for [filling out your package manifest](#fill-out-your-package-manifest) (*package.json*). \n\n  Then update the `\"createSeparatePackage\"` field in the *Tests/.tests.json* file to set up testing for Continuous Integration (CI):\n\n  * Set it to false if you want the tests to remain part of the published package. This is the default value.\n\n  * Set it to true if you want the CI to create a separate package for these tests, and add the metadata at publish time to link the packages together. This allows you to have a large number of tests, or assets, etc. that you don't want to include in your main package, while making it easy to test your package with those tests & fixtures.\n\n1. Start **Unity**, create a local empty project and import your package into the project.\n\n1. In a console (or terminal) application, push the package starter kit files you copied in your new package repository to its remote.\n\t- Add them to your repository's list to version\n\t\t```git add .```\n\t- Commit to your new package's remote master\n\t\t```git commit```\n\t- Push to your new package's remote master\n\t\t```git push```\n\n1. Restart **Unity**. This forces the Package Manager to rescan your project so that it can find the new package that you just embedded. For more information on embedded packages see [Confluence](https://confluence.hq.unity3d.com/display/PAK/How+to+embed+a+package+in+your+project).\n\n1. **Update the *README.md* file.**\n\n\tIt should contain all pertinent information for developers using your package, such as:\n\n\t* Prerequistes\n\t* External tools or development libraries\n\t* Required installed Software\n\t* Command line examples to build, test, and run your package.\n\n1. **Rename and update your documentation file(s).**\n\n\tUse the samples included in this starter kit to create preliminary, high-level documentation. Your documentation should introduce users to the features and sample files included in your package. For more information, see [Document your package](#document-your-package).\n\n1. **Rename and update assembly definition files.**\n\n\t\n\tChoose a name schema to ensure that the name of the assembly built from the assembly definition file (_.asmdef_) will follow the .Net [Framework Design Guidelines](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index). For more information, see [Name your assembly definition files](#name-your-assembly-definition-files).\n\t\n1. **Add samples to your package (code & assets).**\n\n\tThe Package Manager recognizes the *Samples* directory in a package but does not import samples into Unity when the package is added to a project by default. Users can import samples into their */Assets* directory by clicking the **Import in project** button from the [Details view](https://docs.unity3d.com/Manual/upm-ui-details.html) of your package in the Package Manager window.\n\n\tIf your package contains a sample:\n\n\t* Rename the *Samples/Example* folder, and update the *.sample.json* file in it.\n\n\t* If your package contains multiple samples, make a copy of the *Samples/Example* folder for each sample, and update each *.sample.json* file accordingly.\n\n\tDelete the *Samples* folder altogether if your package does not need samples.\n\n1. **Validate your package using the Validation Suite.**\n\n\tBefore you publish your package, you need to make sure that it passes all the necessary validation checks by using the [Package Validation Suite](https://github.cds.internal.unity3d.com/unity/com.unity.package-validation-suite) extension. This is *required*.\n\n\tFor more information, see [Validate your package](#validate-your-package).\n\n1. **Follow our design guidelines**\n\n\tFollow these design guidelines when creating your package:\n\n\t* The [package design standards](https://confluence.hq.unity3d.com/display/UX/Packages) on Confluence.\n\n\t* The [design checklist](https://unitytech.github.io/unityeditor-hig/topics/checklist.html) from Unity's Human Interface Guidelines.\n\n\t* The namespace for code in the asmdef *must* match the asmdef name, except the initial `Unity`, which should be replaced with `UnityEngine` or `UnityEditor`.\n\n\t* For **Runtime code**, only use the `Unity` namespace for code that has no dependency on anything in `UnityEngine` or `UnityEditor` and instead uses `ECS` and other `Unity`-namespace systems.\n\n1. **Add tests to your package.**\n\n\tFor **Editor tests**:\n\t* Write all your Editor Tests in *Tests/Editor*\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Editor code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Editor.Tests\")]`.\n\n\tFor **Playmode Tests**:\n\t* Write all your Playmode Tests in *Tests/Runtime*.\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Runtime code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Tests\")]`.\n\n1. **Setup your package CI.**\n\n\tMake sure your package continues to work against trunk or any other branch by setting up automated testing on every commit. See the [Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that explains how to set up your package CI.\n\n\tThis starter kit contains the minimum recommended workflow for package CI, which provides the barebones to: `pack`, `test` and `publish` your packages. It also contains the required configuration to `promote` your **preview** packages to production.\n\n1. **Update *CHANGELOG.md*.**\n\n\tEvery new feature or bug fix should have a trace in this file. For more details on the chosen changelog format, see [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).\n\n\n\n### Fill out your package manifest\n\n1. Update the following required fields in file *package.json* (see [Confluence](https://confluence.hq.unity3d.com/pages/viewpage.action?pageId=39065257) for more information):\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"name\"` | Set the package name, following this naming convention: `\"com.unity.[your-package-name]\"`, without capital letters. For example, `\"com.unity.2d.animation\"`. |\n\t| `\"displayName\"` | Set the package's user-friendly display name. For example, `\"Terrain Builder SDK\"`. <br><br>__Note:__ Use a display name that will help users understand what your package is intended for. |\n\t| `\"version\"` | Set the package version in `\"X.Y.Z\"` format, following these [Semantic Versioning](http://semver.org/spec/v2.0.0.html) guidelines:<br>- To introduce a breaking API change, increment the major version (**X**.Y.Z).<br>- To introduce a new feature, increment the minor version (X.**Y**.Z).<br>- To introduce a bug fix, increment the patch version (X.Y.**Z**) |\n\t| `\"unity\"` | Set the Unity version your package is compatible with. For example: `\"2018.1\"`. |\n\t| `\"unityRelease\"` | Specify the Unity patch release your package is compatible with. For example: `\"0a8\"`.<br/><br/>__Note:__ This field is only required when the specific Unity version has a patch release. |\n\t| `\"description\"` | This description appears in the Package Manager window when the user selects this package from the list. For best results, use this text to summarize what the package does and how it can benefit the user.<br><br>Special formatting characters are supported, including line breaks (`\\n`) and unicode characters such as bullets (`\\u25AA`). For more information, see the [Writing Package docs](https://confluence.hq.unity3d.com/display/DOCS/Writing+Package+docs) page on Confluence. |\n\n1. Update the following recommended fields in file **package.json**:\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"dependencies\"` | List of packages this package depends on.  All dependencies will also be downloaded and loaded in a project with your package.  Here's an example:<br/><br/>`dependencies: {`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.ads\": \"1.0.0\",`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.analytics\": \"2.0.0\"`<br/>`}` |\n\t| `\"keywords\"` | An array of keywords related to the package. This field is currently purely informational. |\n\t| `\"type\"` | The type of your package. This is used to determine the visibility of your package in the Project Browser and the visibility of its Assets in the Object Picker. The `\"tool\"` and `\"library\"` types are used to set your package and its Assets as hidden by default. If not present or set to another value, your package and its Assets are visible by default. |\n\t| `\"hideInEditor\"` | A boolean value that overrides the package visibility set by the package type. If set to `false`, the default value, your package and its Assets are **always** visible by default; if set to `true`, your package and its Assets are **always** hidden by default. |\n\n\t**Notes**:\n\t- For packages in development, neither `\"type\"` nor `\"hideInEditor\"` are used. The package is **always** visible in the Project Browser and its Assets are **always** visible in the Object Picker.\n\t- The user is **always** able to toggle the package visibility in the Project Browser, as well as their Assets visibility in the Object Picker.\n\n### Document your package\n\nYou need to document your public APIs and provide task-oriented documentation for your features:\n\n1. Document all of [your public APIs](#document-your-public-apis) and [your features](#document-your-features).\n2. [Test your documentation locally](#test-your-documentation-locally).\n3. [Get your documentation published](#get-your-documentation-published).\n\nYour package should include the documentation source in your package, but not the generated HTML.\n\nThe page in the user manual that links to package documentation is [Packages documentation](http://docs.hq.unity3d.com/Documentation/Manual/PackagesList.html).\n\n#### Document your public APIs\n\nAPI documentation is generated from any [XmlDoc tagged comments](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments) found in the *.cs* files included in the package.  \n\nYou can use Visual Studio to autogenerate the correct tags by entering the documentation comments (`///`) in the empty line above your code. Visual Studio automatically detects which tags your code needs and inserts them. For example, if you write a method with two parameters that returns a value, Visual Studio gives you the **summary** tag (for the method description), two **param** tags, and one **returns** tag:\n\n```c#\n/// <summary>\n///\n/// </summary>\n/// <param name=\"One\"></param>\n/// <param name=\"Two\"></param>\n/// <returns></returns>\npublic bool TestingXmlDoc(int One, int Two)\n{\n\n}\n```\n\nSee the [Editor/EditorExample.cs](Editor/EditorExample.cs) file in this package for examples of how to document classes, methods, properties, and enums.\n\nYou need to document all public APIs. If you don't need an API to be accessed by clients, mark it as internal instead:\n\n1. Add a custom *filter.yml* file to the package *Documentation~* folder.  \n\n2. Add these rules to your custom *filter.yml* file. These rules make the DocFX configuration consistent with packages that don't have a custom filter:\n\n\t```yaml\n\tapiRules:\n\t  - exclude:\n\t    # inherited Object methods\n\t    uidRegex: ^System\\.Object\\..*$\n\t    type: Method\n\t  - exclude:\n\t    # mentioning types from System.* namespace\n\t    uidRegex: ^System\\..*$\n\t    type: Type\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Member\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Type\n\t```\n\n3. Specify classes to exclude by UID or by specifying regular expressions. For information about the rules for the filters, see the [DocFX guide](https://dotnet.github.io/docfx/tutorial/howto_filter_out_unwanted_apis_attributes.html).\n\n#### Document your features\n\nWrite the Manual documentation using [GitHub-flavored Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) in *.md* files stored under the *Documentation~* folder. The *Documentation~* folder is suffixed with `~` to prevent its contents from being loaded in the Editor (recommended). Alternatively, you could use *.Documentation* for the folder name.\n\nThis preliminary, high-level documentation should introduce users to the features and sample files included in your package.\n\nAll packages that expose UI in editor or runtime features should use one of the appropriate documentation example guides under the *Documentation~* folder:\n\n* [tools-package-guide.md](Documentation~/tools-package-guide.md) for a package that includes features that augment the Unity Editor or Runtime (modules, tools, and libraries)\n* [sample-package-guide.md](Documentation~/sample-package-guide.md) for a package that includes sample files\n* [test-package-guide.md](Documentation~/test-package-guide.md) for a package that provides tests\n\nFor instructions, see the [documentation guidelines](Documentation~/index.md).\n\n#### Test your documentation locally\n\nAs you are developing your documentation, you can see what your documentation will look like by using the DocTools package: **com.unity.package-manager-doctools** (optional).\n\nOnce the DocTools package is installed, it displays a **Generate Documentation** button in the Package Manager window's Details view for any installed or embedded packages. To install the extension, see [Installing the DocTools package](https://confluence.hq.unity3d.com/display/DOCS/Package+documentation+with+Git#PackagedocumentationwithGit-InstallingDocTools) on Confluence.\n\nThe DocTools extension is still in preview, if you come across arguable results, please discuss them on **#docs-packman**.\n\n#### Get your documentation published\n\nWhen the documentation is complete, notify the technical writer assigned to your team or project. If you don't know which technical writer is assigned, fill out the [Package Docs Questions](https://docs.google.com/document/d/1vI0zbNX9OausEwYhg_kl9CIDNf4taExjON0fyp2cHS0) form, [log a JIRA DOC ticket](https://unity3d.atlassian.net/secure/CreateIssue!default.jspa?selectedProjectId=12200&issuetype=3) and attach the form to that ticket.\n\nYou can also ask for help or clarification on **#devs-documentation**.\n\n> **Note:** The package will remain in **preview** mode until the final documentation is completed.  Users will have access to the developer-generated documentation only in preview packages.\n\nAfter the technical writer reviews the documentation, they will create a pull request in the package git repository. The package's development team will then need to submit a new package version with the updated docs.\n\n\n\n### Name your assembly definition files\n\nIf your package contains Editor code, rename and modify [Editor/Unity.YourPackageName.Editor.asmdef](Editor/Unity.YourPackageName.Editor.asmdef). Otherwise, delete the *Editor* directory.\n\n* Name **must** match your package name, suffixed by `.Editor` (for example, `Unity.[YourPackageName].Editor`).\n* Assembly **must** reference `Unity.[YourPackageName]` (if you have any runtime code).\n* Platforms **must** include `\"Editor\"`.\n\nIf your package contains code that needs to be included in Unity runtime builds, rename and modify [Runtime/Unity.YourPackageName.asmdef](Runtime/Unity.YourPackageName.asmdef). Otherwise, delete the *Runtime* directory.\n\n* Name **must** match your package name (for example,`Unity.[YourPackageName]`)\n\nIf your package has Editor code, you **must** have Editor Tests. In that case, rename and modify [Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef](Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Editor.Tests` (for example, `Unity.[YourPackageName].Editor.Tests`)\n* Assembly **must** reference `Unity.[YourPackageName].Editor` and `Unity.[YourPackageName]` (if you have any Runtime code).\n* Platforms **must** include `\"Editor\"`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Editor Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\nIf your package has Runtime code, you **must** have Playmode Tests. In that case, rename and modify [Tests/Runtime/Unity.YourPackageName.Tests.asmdef](Tests/Runtime/Unity.YourPackageName.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Tests` (for example, `Unity.[YourPackageName].Tests`)\n* Assembly **must** reference `Unity.[YourPackageName]`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Playmode Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\n\n\n### Validate your package\n\nTo install the extension, follow these steps:\n\n1. Make sure you have `Package Manager UI v1.9.6` or above.\n\n2. Make sure your project manifest points to the Candidates registry, which you can do by changing the **registry** line to:\n\n\t```json\n\t\"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n\t```\n\n3. From the Package Manager window, install the latest version of the **Package Validation Suite** with the scope set to **All Packages**. If you don't see it in the list, make sure **Advanced** &gt; **Show preview packages** is enabled.\n\nOnce the Validation Suite package is installed, a **Validate** button appears in the details pane when you select your installed package from the Package Manager window.\n\nTo run the tests:\n\n1. Click the **Validate** button to run a series of tests. A **See Results** button appears after the test run.\n2. Click the **See Results** button for additional explanation:\n\t* If it succeeds, a green bar displays a **Success** message.\n\t* If it fails, a red bar displays a **Failed** message.\n\nThe validation suite is still in preview, so if you come across arguable results, please discuss them on **#devs-packman**.\n\n\n\n## Create a Pre-Release Package\nPre-Release Packages are a great way of getting your features in front of Unity Developers in order to get early feedback on functionality and UI designs. Pre-Release packages need to go through the publishing to production flow, as would any other package, but with diminished requirements:\n\n  * Expected Package structure respected\n  * Package loads in Unity Editor without errors\n  * License file present - With third party notices file if necessary\n  * Test coverage is good - Optional but preferred\n  * Public APIs documented, minimal feature docs exists- Optional but preferred\n\nThe only supported Pre-Release tag is **preview** which you suffix to the version number of the package in the *package.json* manifest file. For example:\n\n```json\n\"version\" : \"1.2.0-preview\"\n```\n\n\n\n## Register your package\n\nIf you think you are working on a feature that is a good package candidate, please take a minute to tell Release Management about it in the **#devs-pkg-promotion** channel.\n\nWorking with the board of dev directors and with product management, we will schedule the entry of the candidates in the ecosystem, based on technical challenges and on our feature roadmap.\nDon’t hesitate to reach out and join us on **#devs-packman** on Slack.\n\n## Share your package\n\nIf you want to share your project with other developers, the steps are similar to what's presented above. On the other developer's machine:\n\n1. Start **Unity** and create a local empty project.\n\n1. Launch the console (or terminal) application, navigate to the newly created project folder, and then clone your repository in the `Packages` directory:\n\n    ```shell\n    cd <YourProjectPath>/Packages\n    git clone https://github.cdsinternal.unity3d.com/unity/[your-package-name].git com.unity.[sub-group].[your-package-name]\n    ```\n    > __Note:__ Your directory name must be the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n## Make sure your package meets all legal requirements\n\nAll packages must COMPLETE AND SUBMIT [THIS FORM](https://docs.google.com/forms/d/e/1FAIpQLSe3H6PARLPIkWVjdB_zMvuIuIVtrqNiGlEt1yshkMCmCMirvA/viewform) to receive approval. It is a simple, streamlined form that tells legal if there are any potential issues that need to be addressed prior to publication.\n\nIf your package has third-party elements and its licenses are approved, then all the licenses must be added to the **Third Party Notices.md** file. If you have more than one license, duplicate the `Component Name/License Type/Provide License Details` section for each additional license.\n\n> **Note:** A URL can work as long as it actually points to the reproduced license and the copyright information _(if applicable)_.\n\nIf your package does not have third party elements, you can remove the *Third Party Notices.md* file from your package.\n\n## Preparing your package for the Candidates registry\n\nBefore publishing your package to production, you must send your package on the Package Manager's internal **candidates** repository.  The candidates repository is monitored by QA and release management, and is where package validation will take place before it is accepted in production.\n\n1. Publishing your changes to the Package Manager's **Candidates** registry happens from Github.cds.  To do so, set up your project's Continuous integration (CI), which will be triggered by \"Tags\" on your branches.\n\n\tFor information see [the Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that describes how to set up CI for your package.\n\n1. Test your package locally. Once your package is published on the **Candidates** registry, you can test your package in the editor by creating a new project, and editing the project's *manifest.json* file to point to your candidate package:\n\n      ```json\n      dependencies: {\n        \"com.unity.[sub-group].[your-package-name]\": \"0.1.0\"\n      },\n      \"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n      ```\n\n## Get your package published to Production\n\nPackages are promoted to the **Production** registry from the **Candidates** registry, as described above. Your package must meet [certain criteria](https://docs.google.com/document/d/1TSnlSKJ6_h0C-CYO2LvV0fyGxJvH6OxC2-heyN8o-Gw/edit#heading=h.xxfb5jk2jda2) before you can submit a request to promote a package to production.\n\nOnce you feel comfortable that your package meets the list of Release Management Criteria, ask to be promoted from candidates to production by going to **#devs-pkg-promotion**.\n\nAlso, once you have a package in production for a few versions and it was used by real users, you can ask to be whitelisted to appear in the Package Manager window. Your package will not be visible in the Package Manager window until it is published AND whitelisted by Release Management.\n\n**_Release management will validate your package content, and check that the editor/playmode tests pass before promoting the package to production._**\n\n### Verified status and bundled packages\nIf your package is meant to ship with a release of the editor (**Verified Packages** and **Bundled Packages**), follow these steps:\n1. To be marked as verified, in trunk, modify the editor manifest (*[root]\\External\\PackageManager\\Editor\\manifest.json*) to include your package in the **verified** list.\n\n1. If your package is not verified, but only bundled with the editor, submit one or more Test Project(s) in Ono, so that your new package can be tested in all ABVs moving forward.\n\n\tThe following steps will create a test project that will run in ABVs, load your package into the project, and run all the tests found in your package. The better your test coverage, the more confident you'll be that your package works with trunk.\n\n\t* Create a branch in Ono, based on the latest branch this package must be compatible with (trunk, or release branch).\n\t* If your package contains **Editor Tests**:\n\t\t* In *[root]\\Tests\\Editor.Tests*, create a new EditorTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t\tTo get a bare package for an EditorTest Project, click [here](https://oc.unity3d.com/index.php/s/Cldvuy6NpxqYy8y).\n\n\t\t* Modify the project’s *manifest.json* file to include the production version of the package (`name@version`).\n\n\t\t* Your project's *manifest.json* file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\t* If your package contains **PlaymodeTests**:\n\t\t* In *[root]\\Tests\\PlaymodeTests*, create a new PlaymodeTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t* Modify the project’s *manifest.json* file to include the candidate version of the package (`name@version`).\n\n\t\t* Your project's manifest.json file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\n\t\t* Commit your branch changes to Ono, and run all Windows & Mac Editor/PlayMode tests (not full ABV) in Katana.\n\n1. Once the tests are green on Katana, create your PR, add both **Latest Release Manager** and **Trunk Merge Queue** as reviewers.\n\n\n## FAQ\n\n**What’s the difference between a preview package and a verified package?**\n\nA preview package is a great way to develop and get feedback on new features and functionality.  Preview package can be created against any version of Unity 2018.1+, and can be made discoverable through the Package Manager UI by issuing a request in #devs-packman.  Quality and release schedule is up to the package owner, although minimum bars are set in place to ensure the package contains the right licenses, documentation, and a comprehensive set of tests.\n\nOnce a preview package has been in the field for 2-3 release cycles of the editor, that package can be considered for Verification. Verified packages are tested with a specific version of the editor, and offer our users a compatibility guarantee.  Verified packages are the only packages that can be included in the set of templates we ship with the editor (Verified Templates).  Code for these packages must follow core development guidelines, including code cutoff dates, and are tested in katana for continued compatibility.\n\n**What’s the difference between a core package and a default package?**\n\nA core package is a package that has its code included with the Editor’s core code. This is interesting for packages that plan to change enormously in parallel to editor APIs. By moving package code to the editor’s repo, both core API\\functionality changes can be made along with required packages changes in the same PR.\nhttps://docs.google.com/document/d/1CMoanjR3KAdew-6n39JdCFmHkTp1oshs3vkpejapf4Q/edit\n\nA default package is a verified package that gets installed with every new project users create, regardless of the template they use. We should limit the number of default packages we support, as each default package adds to the project loading time. The list of default packages can be found in the editor manifest (https://ono.unity3d.com/unity/unity/files/de904b9ed9b44580ecd1e883f510daaa08182cc5/External/PackageManager/Editor/manifest.json).\n\n**What are the requirement for me to publish a preview package?**\n\nhttps://docs.google.com/document/d/1epGkAJRayJLN89_weA_-G5LFT_1uFifFZqBzAgvp_Zs/\n\n\n**What are the requirements for me to get my package verified for a version of unity?**\n\nhttps://docs.google.com/document/d/1oWC9XArVfkGMnqN9azR4hW4Pcd7-kQQw8Oy7ckP43JE/\n\n**How is my verified package tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How is my template tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How do I add samples to my package?**\n\nhttps://docs.google.com/document/d/1rmxGh6Z9gtbQlGUKCsVBaR0RyHvzq_gsWoYs6sttzYA/edit#heading=h.fg1e3sz56048\n\n**How do I setup CI or publishing options for my package?**\nhttps://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI\n\n**How can I add tests to my package?**\n\nThere’s a “Tests” directory in the package starter kit. If you add editor and playmode tests in that directory, they will make up the list of tests for your package.\n\n**The tests in my package bloat my package too much, what are my options?**\n\nhttps://docs.google.com/document/d/19kKIGFetde5ES-gKXQp_P7bxQ9UgBnBUu58-y7c1rTA/edit\n\n**Can I automate my package publishing yet?**\n\nNot just yet, but we’re working on it. The first automated publishing we will enable is the push to production for preview packages. Basically, when your package passes validation (loads in the editor without error, the tests in the package pass, validation suite run success), the package will be pushed to production automatically. Other publishing flows will soon be available as well, here’s the full list of internal package publishing flows Unity will support.  https://docs.google.com/document/d/1zdMzAtfi-vgM8NMPmwL40yinBeL3YImwTO5gSfGNCgs/edit\n\n**How do I get a template package started?**\n\nStart with the Project Template Starter Kit (you can request access in **#devs-packman**).\nhttps://github.cds.internal.unity3d.com/unity/com.unity.template-starter-kit\n\n**How do I get my package included in a template?**\n\nFirst and foremost, your package needs to be on the verified list of packages.  Only verified packages can get added to templates we ship with the editor. Then reach out to the templates community in **#devs-template** to open discussions on adding your package to one or more of our existing templates.\n\n**How can I test my package locally, as a user would?**\n\nhttps://confluence.hq.unity3d.com/display/PAK/How+to+add+a+git+package+to+your+project\n\n**What tests are included by the validation suite?**\n\nhttps://docs.google.com/spreadsheets/d/1CdO7D0WSirbZhjnVsdJxJwOPK4UdUDxSRBIqwyjm70w/edit#gid=0\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"}],"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"8ba7482e36030bcf06019e3d0be37c3a72e5920c"},"_npmVersion":"6.13.4","_nodeVersion":"12.16.1","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"3.0.0-pre.6"},"name":"com.unity.purchasing","version":"3.0.0-pre.6","displayName":"In App Purchasing","description":"*** PRE RELEASE ***\n\nNote: This In-App-Purchasing 3.0 package is a pre-release version and is not yet intended for use with existing projects.\n\nIMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0"},"dist":{"shasum":"9dc1b28c73aef7948485236c7abf2863fcb13745","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-3.0.0-pre.6.tgz"}},"3.0.0-pre.5":{"_id":"com.unity.purchasing@3.0.0-pre.5","type":"asset","_from":"file:com.unity.purchasing-3.0.0-pre.5.tgz","unity":"2019.4","upmCi":{"footprint":"ec6e8563be7922d374545a1599e5a8b1f73eaad9"},"readme":"# UPM Package Starter Kit\n\nThe purpose of this package starter kit is to provide the data structure and development guidelines for new packages meant for the **Unity Package Manager (UPM)**.\n\nThis is the first of many steps towards an automated package publishing experience within Unity. This package starter kit is merely a fraction of the creation, edition, validation, and publishing tools that we will end up with.\n\nWe hope you enjoy your experience. You can use **#devs-packman** on Slack to provide feedback or ask questions regarding your package development efforts.\n\n## Are you ready to become a package?\nThe Package Manager is a work-in-progress for Unity and, in that sense, there are a few criteria that must be met for your package to be considered on the package list at this time:\n- **Your code accesses public Unity C# APIs only.**  If you have a native code component, it will need to ship with an official editor release.  Internal API access might eventually be possible for Unity made packages, but not at this time.\n- **Your code doesn't require security, obfuscation, or conditional access control.**  Anyone should be able to download your package and access the source code.\n\n\n## Package structure\n\n```none\n<root>\n  ├── package.json\n  ├── README.md\n  ├── CHANGELOG.md\n  ├── LICENSE.md\n  ├── Third Party Notices.md\n  ├── QAReport.md\n  ├── Editor\n  │   ├── Unity.[YourPackageName].Editor.asmdef\n  │   └── EditorExample.cs\n  ├── Runtime\n  │   ├── Unity.[YourPackageName].asmdef\n  │   └── RuntimeExample.cs\n  ├── Tests\n  │   ├── .tests.json\n  │   ├── Editor\n  │   │   ├── Unity.[YourPackageName].Editor.Tests.asmdef\n  │   │   └── EditorExampleTest.cs\n  │   └── Runtime\n  │        ├── Unity.[YourPackageName].Tests.asmdef\n  │        └── RuntimeExampleTest.cs\n  ├── Samples\n  │   └── Example\n  │       ├── .sample.json\n  │       └── SampleExample.cs\n  └── Documentation~\n       ├── your-package-name.md\n       └── Images\n```\n\n## Develop your package\nPackage development works best within the Unity Editor.  Here's how to set that up:\n\n1. Clone the Package Starter Kit repository locally.\n\n\t- In a console (or terminal) application, choose a place to clone the repository and enter the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.package-starter-kit.git\n\t\t```\n\n1. Create a new repository for your package and clone to your desktop.\n\n\t- On Github.cds create a new repository with the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n\t- In a console (or terminal) application, choose a place to clone the repository and perform the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.[your-package-name]\n\t\t```\n\n1. Copy the contents of the Package Starter Kit folder to your new package.  Be careful not to copy the Package Starter Kit *.git* folder over.\n\n1. **Fill in your package information.**\n\n  Follow the instructions for [filling out your package manifest](#fill-out-your-package-manifest) (*package.json*). \n\n  Then update the `\"createSeparatePackage\"` field in the *Tests/.tests.json* file to set up testing for Continuous Integration (CI):\n\n  * Set it to false if you want the tests to remain part of the published package. This is the default value.\n\n  * Set it to true if you want the CI to create a separate package for these tests, and add the metadata at publish time to link the packages together. This allows you to have a large number of tests, or assets, etc. that you don't want to include in your main package, while making it easy to test your package with those tests & fixtures.\n\n1. Start **Unity**, create a local empty project and import your package into the project.\n\n1. In a console (or terminal) application, push the package starter kit files you copied in your new package repository to its remote.\n\t- Add them to your repository's list to version\n\t\t```git add .```\n\t- Commit to your new package's remote master\n\t\t```git commit```\n\t- Push to your new package's remote master\n\t\t```git push```\n\n1. Restart **Unity**. This forces the Package Manager to rescan your project so that it can find the new package that you just embedded. For more information on embedded packages see [Confluence](https://confluence.hq.unity3d.com/display/PAK/How+to+embed+a+package+in+your+project).\n\n1. **Update the *README.md* file.**\n\n\tIt should contain all pertinent information for developers using your package, such as:\n\n\t* Prerequistes\n\t* External tools or development libraries\n\t* Required installed Software\n\t* Command line examples to build, test, and run your package.\n\n1. **Rename and update your documentation file(s).**\n\n\tUse the samples included in this starter kit to create preliminary, high-level documentation. Your documentation should introduce users to the features and sample files included in your package. For more information, see [Document your package](#document-your-package).\n\n1. **Rename and update assembly definition files.**\n\n\t\n\tChoose a name schema to ensure that the name of the assembly built from the assembly definition file (_.asmdef_) will follow the .Net [Framework Design Guidelines](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index). For more information, see [Name your assembly definition files](#name-your-assembly-definition-files).\n\t\n1. **Add samples to your package (code & assets).**\n\n\tThe Package Manager recognizes the *Samples* directory in a package but does not import samples into Unity when the package is added to a project by default. Users can import samples into their */Assets* directory by clicking the **Import in project** button from the [Details view](https://docs.unity3d.com/Manual/upm-ui-details.html) of your package in the Package Manager window.\n\n\tIf your package contains a sample:\n\n\t* Rename the *Samples/Example* folder, and update the *.sample.json* file in it.\n\n\t* If your package contains multiple samples, make a copy of the *Samples/Example* folder for each sample, and update each *.sample.json* file accordingly.\n\n\tDelete the *Samples* folder altogether if your package does not need samples.\n\n1. **Validate your package using the Validation Suite.**\n\n\tBefore you publish your package, you need to make sure that it passes all the necessary validation checks by using the [Package Validation Suite](https://github.cds.internal.unity3d.com/unity/com.unity.package-validation-suite) extension. This is *required*.\n\n\tFor more information, see [Validate your package](#validate-your-package).\n\n1. **Follow our design guidelines**\n\n\tFollow these design guidelines when creating your package:\n\n\t* The [package design standards](https://confluence.hq.unity3d.com/display/UX/Packages) on Confluence.\n\n\t* The [design checklist](https://unitytech.github.io/unityeditor-hig/topics/checklist.html) from Unity's Human Interface Guidelines.\n\n\t* The namespace for code in the asmdef *must* match the asmdef name, except the initial `Unity`, which should be replaced with `UnityEngine` or `UnityEditor`.\n\n\t* For **Runtime code**, only use the `Unity` namespace for code that has no dependency on anything in `UnityEngine` or `UnityEditor` and instead uses `ECS` and other `Unity`-namespace systems.\n\n1. **Add tests to your package.**\n\n\tFor **Editor tests**:\n\t* Write all your Editor Tests in *Tests/Editor*\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Editor code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Editor.Tests\")]`.\n\n\tFor **Playmode Tests**:\n\t* Write all your Playmode Tests in *Tests/Runtime*.\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Runtime code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Tests\")]`.\n\n1. **Setup your package CI.**\n\n\tMake sure your package continues to work against trunk or any other branch by setting up automated testing on every commit. See the [Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that explains how to set up your package CI.\n\n\tThis starter kit contains the minimum recommended workflow for package CI, which provides the barebones to: `pack`, `test` and `publish` your packages. It also contains the required configuration to `promote` your **preview** packages to production.\n\n1. **Update *CHANGELOG.md*.**\n\n\tEvery new feature or bug fix should have a trace in this file. For more details on the chosen changelog format, see [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).\n\n\n\n### Fill out your package manifest\n\n1. Update the following required fields in file *package.json* (see [Confluence](https://confluence.hq.unity3d.com/pages/viewpage.action?pageId=39065257) for more information):\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"name\"` | Set the package name, following this naming convention: `\"com.unity.[your-package-name]\"`, without capital letters. For example, `\"com.unity.2d.animation\"`. |\n\t| `\"displayName\"` | Set the package's user-friendly display name. For example, `\"Terrain Builder SDK\"`. <br><br>__Note:__ Use a display name that will help users understand what your package is intended for. |\n\t| `\"version\"` | Set the package version in `\"X.Y.Z\"` format, following these [Semantic Versioning](http://semver.org/spec/v2.0.0.html) guidelines:<br>- To introduce a breaking API change, increment the major version (**X**.Y.Z).<br>- To introduce a new feature, increment the minor version (X.**Y**.Z).<br>- To introduce a bug fix, increment the patch version (X.Y.**Z**) |\n\t| `\"unity\"` | Set the Unity version your package is compatible with. For example: `\"2018.1\"`. |\n\t| `\"unityRelease\"` | Specify the Unity patch release your package is compatible with. For example: `\"0a8\"`.<br/><br/>__Note:__ This field is only required when the specific Unity version has a patch release. |\n\t| `\"description\"` | This description appears in the Package Manager window when the user selects this package from the list. For best results, use this text to summarize what the package does and how it can benefit the user.<br><br>Special formatting characters are supported, including line breaks (`\\n`) and unicode characters such as bullets (`\\u25AA`). For more information, see the [Writing Package docs](https://confluence.hq.unity3d.com/display/DOCS/Writing+Package+docs) page on Confluence. |\n\n1. Update the following recommended fields in file **package.json**:\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"dependencies\"` | List of packages this package depends on.  All dependencies will also be downloaded and loaded in a project with your package.  Here's an example:<br/><br/>`dependencies: {`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.ads\": \"1.0.0\",`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.analytics\": \"2.0.0\"`<br/>`}` |\n\t| `\"keywords\"` | An array of keywords related to the package. This field is currently purely informational. |\n\t| `\"type\"` | The type of your package. This is used to determine the visibility of your package in the Project Browser and the visibility of its Assets in the Object Picker. The `\"tool\"` and `\"library\"` types are used to set your package and its Assets as hidden by default. If not present or set to another value, your package and its Assets are visible by default. |\n\t| `\"hideInEditor\"` | A boolean value that overrides the package visibility set by the package type. If set to `false`, the default value, your package and its Assets are **always** visible by default; if set to `true`, your package and its Assets are **always** hidden by default. |\n\n\t**Notes**:\n\t- For packages in development, neither `\"type\"` nor `\"hideInEditor\"` are used. The package is **always** visible in the Project Browser and its Assets are **always** visible in the Object Picker.\n\t- The user is **always** able to toggle the package visibility in the Project Browser, as well as their Assets visibility in the Object Picker.\n\n### Document your package\n\nYou need to document your public APIs and provide task-oriented documentation for your features:\n\n1. Document all of [your public APIs](#document-your-public-apis) and [your features](#document-your-features).\n2. [Test your documentation locally](#test-your-documentation-locally).\n3. [Get your documentation published](#get-your-documentation-published).\n\nYour package should include the documentation source in your package, but not the generated HTML.\n\nThe page in the user manual that links to package documentation is [Packages documentation](http://docs.hq.unity3d.com/Documentation/Manual/PackagesList.html).\n\n#### Document your public APIs\n\nAPI documentation is generated from any [XmlDoc tagged comments](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments) found in the *.cs* files included in the package.  \n\nYou can use Visual Studio to autogenerate the correct tags by entering the documentation comments (`///`) in the empty line above your code. Visual Studio automatically detects which tags your code needs and inserts them. For example, if you write a method with two parameters that returns a value, Visual Studio gives you the **summary** tag (for the method description), two **param** tags, and one **returns** tag:\n\n```c#\n/// <summary>\n///\n/// </summary>\n/// <param name=\"One\"></param>\n/// <param name=\"Two\"></param>\n/// <returns></returns>\npublic bool TestingXmlDoc(int One, int Two)\n{\n\n}\n```\n\nSee the [Editor/EditorExample.cs](Editor/EditorExample.cs) file in this package for examples of how to document classes, methods, properties, and enums.\n\nYou need to document all public APIs. If you don't need an API to be accessed by clients, mark it as internal instead:\n\n1. Add a custom *filter.yml* file to the package *Documentation~* folder.  \n\n2. Add these rules to your custom *filter.yml* file. These rules make the DocFX configuration consistent with packages that don't have a custom filter:\n\n\t```yaml\n\tapiRules:\n\t  - exclude:\n\t    # inherited Object methods\n\t    uidRegex: ^System\\.Object\\..*$\n\t    type: Method\n\t  - exclude:\n\t    # mentioning types from System.* namespace\n\t    uidRegex: ^System\\..*$\n\t    type: Type\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Member\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Type\n\t```\n\n3. Specify classes to exclude by UID or by specifying regular expressions. For information about the rules for the filters, see the [DocFX guide](https://dotnet.github.io/docfx/tutorial/howto_filter_out_unwanted_apis_attributes.html).\n\n#### Document your features\n\nWrite the Manual documentation using [GitHub-flavored Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) in *.md* files stored under the *Documentation~* folder. The *Documentation~* folder is suffixed with `~` to prevent its contents from being loaded in the Editor (recommended). Alternatively, you could use *.Documentation* for the folder name.\n\nThis preliminary, high-level documentation should introduce users to the features and sample files included in your package.\n\nAll packages that expose UI in editor or runtime features should use one of the appropriate documentation example guides under the *Documentation~* folder:\n\n* [tools-package-guide.md](Documentation~/tools-package-guide.md) for a package that includes features that augment the Unity Editor or Runtime (modules, tools, and libraries)\n* [sample-package-guide.md](Documentation~/sample-package-guide.md) for a package that includes sample files\n* [test-package-guide.md](Documentation~/test-package-guide.md) for a package that provides tests\n\nFor instructions, see the [documentation guidelines](Documentation~/index.md).\n\n#### Test your documentation locally\n\nAs you are developing your documentation, you can see what your documentation will look like by using the DocTools package: **com.unity.package-manager-doctools** (optional).\n\nOnce the DocTools package is installed, it displays a **Generate Documentation** button in the Package Manager window's Details view for any installed or embedded packages. To install the extension, see [Installing the DocTools package](https://confluence.hq.unity3d.com/display/DOCS/Package+documentation+with+Git#PackagedocumentationwithGit-InstallingDocTools) on Confluence.\n\nThe DocTools extension is still in preview, if you come across arguable results, please discuss them on **#docs-packman**.\n\n#### Get your documentation published\n\nWhen the documentation is complete, notify the technical writer assigned to your team or project. If you don't know which technical writer is assigned, fill out the [Package Docs Questions](https://docs.google.com/document/d/1vI0zbNX9OausEwYhg_kl9CIDNf4taExjON0fyp2cHS0) form, [log a JIRA DOC ticket](https://unity3d.atlassian.net/secure/CreateIssue!default.jspa?selectedProjectId=12200&issuetype=3) and attach the form to that ticket.\n\nYou can also ask for help or clarification on **#devs-documentation**.\n\n> **Note:** The package will remain in **preview** mode until the final documentation is completed.  Users will have access to the developer-generated documentation only in preview packages.\n\nAfter the technical writer reviews the documentation, they will create a pull request in the package git repository. The package's development team will then need to submit a new package version with the updated docs.\n\n\n\n### Name your assembly definition files\n\nIf your package contains Editor code, rename and modify [Editor/Unity.YourPackageName.Editor.asmdef](Editor/Unity.YourPackageName.Editor.asmdef). Otherwise, delete the *Editor* directory.\n\n* Name **must** match your package name, suffixed by `.Editor` (for example, `Unity.[YourPackageName].Editor`).\n* Assembly **must** reference `Unity.[YourPackageName]` (if you have any runtime code).\n* Platforms **must** include `\"Editor\"`.\n\nIf your package contains code that needs to be included in Unity runtime builds, rename and modify [Runtime/Unity.YourPackageName.asmdef](Runtime/Unity.YourPackageName.asmdef). Otherwise, delete the *Runtime* directory.\n\n* Name **must** match your package name (for example,`Unity.[YourPackageName]`)\n\nIf your package has Editor code, you **must** have Editor Tests. In that case, rename and modify [Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef](Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Editor.Tests` (for example, `Unity.[YourPackageName].Editor.Tests`)\n* Assembly **must** reference `Unity.[YourPackageName].Editor` and `Unity.[YourPackageName]` (if you have any Runtime code).\n* Platforms **must** include `\"Editor\"`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Editor Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\nIf your package has Runtime code, you **must** have Playmode Tests. In that case, rename and modify [Tests/Runtime/Unity.YourPackageName.Tests.asmdef](Tests/Runtime/Unity.YourPackageName.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Tests` (for example, `Unity.[YourPackageName].Tests`)\n* Assembly **must** reference `Unity.[YourPackageName]`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Playmode Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\n\n\n### Validate your package\n\nTo install the extension, follow these steps:\n\n1. Make sure you have `Package Manager UI v1.9.6` or above.\n\n2. Make sure your project manifest points to the Candidates registry, which you can do by changing the **registry** line to:\n\n\t```json\n\t\"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n\t```\n\n3. From the Package Manager window, install the latest version of the **Package Validation Suite** with the scope set to **All Packages**. If you don't see it in the list, make sure **Advanced** &gt; **Show preview packages** is enabled.\n\nOnce the Validation Suite package is installed, a **Validate** button appears in the details pane when you select your installed package from the Package Manager window.\n\nTo run the tests:\n\n1. Click the **Validate** button to run a series of tests. A **See Results** button appears after the test run.\n2. Click the **See Results** button for additional explanation:\n\t* If it succeeds, a green bar displays a **Success** message.\n\t* If it fails, a red bar displays a **Failed** message.\n\nThe validation suite is still in preview, so if you come across arguable results, please discuss them on **#devs-packman**.\n\n\n\n## Create a Pre-Release Package\nPre-Release Packages are a great way of getting your features in front of Unity Developers in order to get early feedback on functionality and UI designs. Pre-Release packages need to go through the publishing to production flow, as would any other package, but with diminished requirements:\n\n  * Expected Package structure respected\n  * Package loads in Unity Editor without errors\n  * License file present - With third party notices file if necessary\n  * Test coverage is good - Optional but preferred\n  * Public APIs documented, minimal feature docs exists- Optional but preferred\n\nThe only supported Pre-Release tag is **preview** which you suffix to the version number of the package in the *package.json* manifest file. For example:\n\n```json\n\"version\" : \"1.2.0-preview\"\n```\n\n\n\n## Register your package\n\nIf you think you are working on a feature that is a good package candidate, please take a minute to tell Release Management about it in the **#devs-pkg-promotion** channel.\n\nWorking with the board of dev directors and with product management, we will schedule the entry of the candidates in the ecosystem, based on technical challenges and on our feature roadmap.\nDon’t hesitate to reach out and join us on **#devs-packman** on Slack.\n\n## Share your package\n\nIf you want to share your project with other developers, the steps are similar to what's presented above. On the other developer's machine:\n\n1. Start **Unity** and create a local empty project.\n\n1. Launch the console (or terminal) application, navigate to the newly created project folder, and then clone your repository in the `Packages` directory:\n\n    ```shell\n    cd <YourProjectPath>/Packages\n    git clone https://github.cdsinternal.unity3d.com/unity/[your-package-name].git com.unity.[sub-group].[your-package-name]\n    ```\n    > __Note:__ Your directory name must be the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n## Make sure your package meets all legal requirements\n\nAll packages must COMPLETE AND SUBMIT [THIS FORM](https://docs.google.com/forms/d/e/1FAIpQLSe3H6PARLPIkWVjdB_zMvuIuIVtrqNiGlEt1yshkMCmCMirvA/viewform) to receive approval. It is a simple, streamlined form that tells legal if there are any potential issues that need to be addressed prior to publication.\n\nIf your package has third-party elements and its licenses are approved, then all the licenses must be added to the **Third Party Notices.md** file. If you have more than one license, duplicate the `Component Name/License Type/Provide License Details` section for each additional license.\n\n> **Note:** A URL can work as long as it actually points to the reproduced license and the copyright information _(if applicable)_.\n\nIf your package does not have third party elements, you can remove the *Third Party Notices.md* file from your package.\n\n## Preparing your package for the Candidates registry\n\nBefore publishing your package to production, you must send your package on the Package Manager's internal **candidates** repository.  The candidates repository is monitored by QA and release management, and is where package validation will take place before it is accepted in production.\n\n1. Publishing your changes to the Package Manager's **Candidates** registry happens from Github.cds.  To do so, set up your project's Continuous integration (CI), which will be triggered by \"Tags\" on your branches.\n\n\tFor information see [the Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that describes how to set up CI for your package.\n\n1. Test your package locally. Once your package is published on the **Candidates** registry, you can test your package in the editor by creating a new project, and editing the project's *manifest.json* file to point to your candidate package:\n\n      ```json\n      dependencies: {\n        \"com.unity.[sub-group].[your-package-name]\": \"0.1.0\"\n      },\n      \"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n      ```\n\n## Get your package published to Production\n\nPackages are promoted to the **Production** registry from the **Candidates** registry, as described above. Your package must meet [certain criteria](https://docs.google.com/document/d/1TSnlSKJ6_h0C-CYO2LvV0fyGxJvH6OxC2-heyN8o-Gw/edit#heading=h.xxfb5jk2jda2) before you can submit a request to promote a package to production.\n\nOnce you feel comfortable that your package meets the list of Release Management Criteria, ask to be promoted from candidates to production by going to **#devs-pkg-promotion**.\n\nAlso, once you have a package in production for a few versions and it was used by real users, you can ask to be whitelisted to appear in the Package Manager window. Your package will not be visible in the Package Manager window until it is published AND whitelisted by Release Management.\n\n**_Release management will validate your package content, and check that the editor/playmode tests pass before promoting the package to production._**\n\n### Verified status and bundled packages\nIf your package is meant to ship with a release of the editor (**Verified Packages** and **Bundled Packages**), follow these steps:\n1. To be marked as verified, in trunk, modify the editor manifest (*[root]\\External\\PackageManager\\Editor\\manifest.json*) to include your package in the **verified** list.\n\n1. If your package is not verified, but only bundled with the editor, submit one or more Test Project(s) in Ono, so that your new package can be tested in all ABVs moving forward.\n\n\tThe following steps will create a test project that will run in ABVs, load your package into the project, and run all the tests found in your package. The better your test coverage, the more confident you'll be that your package works with trunk.\n\n\t* Create a branch in Ono, based on the latest branch this package must be compatible with (trunk, or release branch).\n\t* If your package contains **Editor Tests**:\n\t\t* In *[root]\\Tests\\Editor.Tests*, create a new EditorTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t\tTo get a bare package for an EditorTest Project, click [here](https://oc.unity3d.com/index.php/s/Cldvuy6NpxqYy8y).\n\n\t\t* Modify the project’s *manifest.json* file to include the production version of the package (`name@version`).\n\n\t\t* Your project's *manifest.json* file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\t* If your package contains **PlaymodeTests**:\n\t\t* In *[root]\\Tests\\PlaymodeTests*, create a new PlaymodeTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t* Modify the project’s *manifest.json* file to include the candidate version of the package (`name@version`).\n\n\t\t* Your project's manifest.json file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\n\t\t* Commit your branch changes to Ono, and run all Windows & Mac Editor/PlayMode tests (not full ABV) in Katana.\n\n1. Once the tests are green on Katana, create your PR, add both **Latest Release Manager** and **Trunk Merge Queue** as reviewers.\n\n\n## FAQ\n\n**What’s the difference between a preview package and a verified package?**\n\nA preview package is a great way to develop and get feedback on new features and functionality.  Preview package can be created against any version of Unity 2018.1+, and can be made discoverable through the Package Manager UI by issuing a request in #devs-packman.  Quality and release schedule is up to the package owner, although minimum bars are set in place to ensure the package contains the right licenses, documentation, and a comprehensive set of tests.\n\nOnce a preview package has been in the field for 2-3 release cycles of the editor, that package can be considered for Verification. Verified packages are tested with a specific version of the editor, and offer our users a compatibility guarantee.  Verified packages are the only packages that can be included in the set of templates we ship with the editor (Verified Templates).  Code for these packages must follow core development guidelines, including code cutoff dates, and are tested in katana for continued compatibility.\n\n**What’s the difference between a core package and a default package?**\n\nA core package is a package that has its code included with the Editor’s core code. This is interesting for packages that plan to change enormously in parallel to editor APIs. By moving package code to the editor’s repo, both core API\\functionality changes can be made along with required packages changes in the same PR.\nhttps://docs.google.com/document/d/1CMoanjR3KAdew-6n39JdCFmHkTp1oshs3vkpejapf4Q/edit\n\nA default package is a verified package that gets installed with every new project users create, regardless of the template they use. We should limit the number of default packages we support, as each default package adds to the project loading time. The list of default packages can be found in the editor manifest (https://ono.unity3d.com/unity/unity/files/de904b9ed9b44580ecd1e883f510daaa08182cc5/External/PackageManager/Editor/manifest.json).\n\n**What are the requirement for me to publish a preview package?**\n\nhttps://docs.google.com/document/d/1epGkAJRayJLN89_weA_-G5LFT_1uFifFZqBzAgvp_Zs/\n\n\n**What are the requirements for me to get my package verified for a version of unity?**\n\nhttps://docs.google.com/document/d/1oWC9XArVfkGMnqN9azR4hW4Pcd7-kQQw8Oy7ckP43JE/\n\n**How is my verified package tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How is my template tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How do I add samples to my package?**\n\nhttps://docs.google.com/document/d/1rmxGh6Z9gtbQlGUKCsVBaR0RyHvzq_gsWoYs6sttzYA/edit#heading=h.fg1e3sz56048\n\n**How do I setup CI or publishing options for my package?**\nhttps://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI\n\n**How can I add tests to my package?**\n\nThere’s a “Tests” directory in the package starter kit. If you add editor and playmode tests in that directory, they will make up the list of tests for your package.\n\n**The tests in my package bloat my package too much, what are my options?**\n\nhttps://docs.google.com/document/d/19kKIGFetde5ES-gKXQp_P7bxQ9UgBnBUu58-y7c1rTA/edit\n\n**Can I automate my package publishing yet?**\n\nNot just yet, but we’re working on it. The first automated publishing we will enable is the push to production for preview packages. Basically, when your package passes validation (loads in the editor without error, the tests in the package pass, validation suite run success), the package will be pushed to production automatically. Other publishing flows will soon be available as well, here’s the full list of internal package publishing flows Unity will support.  https://docs.google.com/document/d/1zdMzAtfi-vgM8NMPmwL40yinBeL3YImwTO5gSfGNCgs/edit\n\n**How do I get a template package started?**\n\nStart with the Project Template Starter Kit (you can request access in **#devs-packman**).\nhttps://github.cds.internal.unity3d.com/unity/com.unity.template-starter-kit\n\n**How do I get my package included in a template?**\n\nFirst and foremost, your package needs to be on the verified list of packages.  Only verified packages can get added to templates we ship with the editor. Then reach out to the templates community in **#devs-template** to open discussions on adding your package to one or more of our existing templates.\n\n**How can I test my package locally, as a user would?**\n\nhttps://confluence.hq.unity3d.com/display/PAK/How+to+add+a+git+package+to+your+project\n\n**What tests are included by the validation suite?**\n\nhttps://docs.google.com/spreadsheets/d/1CdO7D0WSirbZhjnVsdJxJwOPK4UdUDxSRBIqwyjm70w/edit#gid=0\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"}],"_resolved":"","_integrity":"","repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"a9123c98c11f486a2db5c60c738c42939c36fbe6"},"_npmVersion":"6.13.4","_nodeVersion":"12.16.1","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"3.0.0-pre.5"},"name":"com.unity.purchasing","version":"3.0.0-pre.5","displayName":"In App Purchasing","description":"*** PRE RELEASE ***\n\nNote: This In-App-Purchasing 3.0 package is a pre-release version and is not yet intended for use with existing projects.\n\nIMPORTANT UPGRADE NOTES:\n\nIf updating from Unity IAP (com.unity.purchasing + the Asset Store plugin) versions 2.x to version 3.x, complete the following actions in order to resolve compilation errors:\n 1. Move IAPProductCatalog.json and BillingMode.json\n\tFROM: Assets/Plugins/UnityPurchasing/Resources/\n\tTO: Assets/Resources/.\n 2. Move AppleTangle.cs and GooglePlayTangle.cs\n\tFROM: Assets/Plugins/UnityPurchasing/generated\n\tTO: Assets/Scripts/UnityPurchasing/generated.\n 3. Remove all remaining Asset Store plugin folders and files in Assets/Plugins/UnityPurchasing from your project.\n\nPACKAGE DESCRIPTION:\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nThis package provides:\n\n ▪ One common API to access all stores for free so you can fully understand and optimize your in-game economy\n ▪ Automatic coupling with Unity Analytics to enable monitoring and decision-making based on trends in your revenue and purchase data across multiple platforms\n ▪ Support for iOS, Mac, tvOS, Google Play, Windows, Amazon, and Samsung Galaxy app stores\n ▪ Support to work with the Unity Distribution Portal to synchronize catalogs and transactions with other app stores\n ▪ Client-side receipt validation for Apple App Store and Google Play\n\nAfter installing this package, open the Services Window to enable In-App Purchasing to use these features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0"},"dist":{"shasum":"745eec7d23b290398e387a2f5761a9b3623efcac","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-3.0.0-pre.5.tgz"}},"2.2.2":{"_id":"com.unity.purchasing@2.2.2","type":"asset","unity":"2018.4","upmCi":{"footprint":"b61346fdaebb6970197c08161507384464e4fc08"},"readme":"# Unity In App Purchasing\n\nImplementation of the Unity In App Purchasing API.\n\n## Release Notes\n\n- Adding Readme file\n- Adding local plugin importer callbacks.\n- Removing Bintray references in package.json","license":"Unity Companion Package License v1.0","_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"ee61dd3b9b07a5b3c6d54795306661ce1d0718ad"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","unityRelease":"18f1","readmeFilename":"README.md","name":"com.unity.purchasing","version":"2.2.2","displayName":"In App Purchasing","description":"Unity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, and Samsung Galaxy app stores. Additionally, it can work in tandem with the Unity Distribution Portal in order to synchronize catalogs and transactions with even more stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple App Store and Google Play.\n\nAfter installing this package, please make sure to open the Services Window and enable In-App Purchasing to use its features. In the In-App Purchasing settings, please make sure to import the Asset Store plugin if you have not already done so. This is necessary to include all of the features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0"},"dist":{"shasum":"a2fcf1a4008a60d23c612a484d8ad93e844a17e3","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-2.2.2.tgz"}},"2.2.1":{"_id":"com.unity.purchasing@2.2.1","type":"asset","unity":"2018.4","upmCi":{"footprint":"4dd280f1c3109962b050ef4c47c2d0613c46258a"},"readme":"# Unity In App Purchasing\n\nImplementation of the Unity In App Purchasing API.\n\n## Release Notes\n\n- Adding Readme file\n- Adding local plugin importer callbacks.\n- Removing Bintray references in package.json","license":"Unity Companion Package License v1.0","_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"f07d4c5151eb13fff9661b62816f29772a916fe8"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","unityRelease":"18f1","readmeFilename":"README.md","name":"com.unity.purchasing","version":"2.2.1","displayName":"In App Purchasing","description":"Unity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, and Samsung Galaxy app stores. Additionally, it can work in tandem with the Unity Distribution Portal in order to synchronize catalogs and transactions with even more stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple App Store and Google Play.\n\nAfter installing this package, please make sure to open the Services Window and enable In-App Purchasing to use its features. In the In-App Purchasing settings, please make sure to import the Asset Store plugin if you have not already done so. This is necessary to include all of the features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0"},"dist":{"shasum":"6b8f110c363bf9e7b3e7601d217002a4d798885c","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-2.2.1.tgz"}},"2.2.0":{"_id":"com.unity.purchasing@2.2.0","type":"asset","unity":"2018.4","upmCi":{"footprint":"9235933a13c29fcf514c2e3c9d44f240397d42ce"},"readme":"# Unity In App Purchasing\n\nImplementation of the Unity In App Purchasing API.\n\n## Release Notes\n\n- Adding Readme file\n- Adding local plugin importer callbacks.\n- Removing Bintray references in package.json","license":"Unity Companion Package License v1.0","_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"1dfbe2b8a8744293dd0deef05e90fb159c28a854"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","unityRelease":"18f1","readmeFilename":"README.md","name":"com.unity.purchasing","version":"2.2.0","displayName":"In App Purchasing","description":"Unity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, and Samsung Galaxy app stores. Additionally, it can work in tandem with the Unity Distribution Portal in order to synchronize catalogs and transactions with even more stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple App Store and Google Play.\n\nAfter installing this package, please make sure to open the Services Window and enable In-App Purchasing to use its features. In the In-App Purchasing settings, please make sure to import the Asset Store plugin if you have not already done so. This is necessary to include all of the features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0"},"dist":{"shasum":"4d61e485801b2c746ad0a26d173a3be675b6f1bc","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-2.2.0.tgz"}},"3.0.0-pre.4":{"_id":"com.unity.purchasing@3.0.0-pre.4","type":"asset","unity":"2019.4","upmCi":{"footprint":"ea31692b85463aabdaadcf01f1cc49d7a80da861"},"readme":"# UPM Package Starter Kit\n\nThe purpose of this package starter kit is to provide the data structure and development guidelines for new packages meant for the **Unity Package Manager (UPM)**.\n\nThis is the first of many steps towards an automated package publishing experience within Unity. This package starter kit is merely a fraction of the creation, edition, validation, and publishing tools that we will end up with.\n\nWe hope you enjoy your experience. You can use **#devs-packman** on Slack to provide feedback or ask questions regarding your package development efforts.\n\n## Are you ready to become a package?\nThe Package Manager is a work-in-progress for Unity and, in that sense, there are a few criteria that must be met for your package to be considered on the package list at this time:\n- **Your code accesses public Unity C# APIs only.**  If you have a native code component, it will need to ship with an official editor release.  Internal API access might eventually be possible for Unity made packages, but not at this time.\n- **Your code doesn't require security, obfuscation, or conditional access control.**  Anyone should be able to download your package and access the source code.\n\n\n## Package structure\n\n```none\n<root>\n  ├── package.json\n  ├── README.md\n  ├── CHANGELOG.md\n  ├── LICENSE.md\n  ├── Third Party Notices.md\n  ├── QAReport.md\n  ├── Editor\n  │   ├── Unity.[YourPackageName].Editor.asmdef\n  │   └── EditorExample.cs\n  ├── Runtime\n  │   ├── Unity.[YourPackageName].asmdef\n  │   └── RuntimeExample.cs\n  ├── Tests\n  │   ├── .tests.json\n  │   ├── Editor\n  │   │   ├── Unity.[YourPackageName].Editor.Tests.asmdef\n  │   │   └── EditorExampleTest.cs\n  │   └── Runtime\n  │        ├── Unity.[YourPackageName].Tests.asmdef\n  │        └── RuntimeExampleTest.cs\n  ├── Samples\n  │   └── Example\n  │       ├── .sample.json\n  │       └── SampleExample.cs\n  └── Documentation~\n       ├── your-package-name.md\n       └── Images\n```\n\n## Develop your package\nPackage development works best within the Unity Editor.  Here's how to set that up:\n\n1. Clone the Package Starter Kit repository locally.\n\n\t- In a console (or terminal) application, choose a place to clone the repository and enter the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.package-starter-kit.git\n\t\t```\n\n1. Create a new repository for your package and clone to your desktop.\n\n\t- On Github.cds create a new repository with the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n\t- In a console (or terminal) application, choose a place to clone the repository and perform the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.[your-package-name]\n\t\t```\n\n1. Copy the contents of the Package Starter Kit folder to your new package.  Be careful not to copy the Package Starter Kit *.git* folder over.\n\n1. **Fill in your package information.**\n\n  Follow the instructions for [filling out your package manifest](#fill-out-your-package-manifest) (*package.json*). \n\n  Then update the `\"createSeparatePackage\"` field in the *Tests/.tests.json* file to set up testing for Continuous Integration (CI):\n\n  * Set it to false if you want the tests to remain part of the published package. This is the default value.\n\n  * Set it to true if you want the CI to create a separate package for these tests, and add the metadata at publish time to link the packages together. This allows you to have a large number of tests, or assets, etc. that you don't want to include in your main package, while making it easy to test your package with those tests & fixtures.\n\n1. Start **Unity**, create a local empty project and import your package into the project.\n\n1. In a console (or terminal) application, push the package starter kit files you copied in your new package repository to its remote.\n\t- Add them to your repository's list to version\n\t\t```git add .```\n\t- Commit to your new package's remote master\n\t\t```git commit```\n\t- Push to your new package's remote master\n\t\t```git push```\n\n1. Restart **Unity**. This forces the Package Manager to rescan your project so that it can find the new package that you just embedded. For more information on embedded packages see [Confluence](https://confluence.hq.unity3d.com/display/PAK/How+to+embed+a+package+in+your+project).\n\n1. **Update the *README.md* file.**\n\n\tIt should contain all pertinent information for developers using your package, such as:\n\n\t* Prerequistes\n\t* External tools or development libraries\n\t* Required installed Software\n\t* Command line examples to build, test, and run your package.\n\n1. **Rename and update your documentation file(s).**\n\n\tUse the samples included in this starter kit to create preliminary, high-level documentation. Your documentation should introduce users to the features and sample files included in your package. For more information, see [Document your package](#document-your-package).\n\n1. **Rename and update assembly definition files.**\n\n\t\n\tChoose a name schema to ensure that the name of the assembly built from the assembly definition file (_.asmdef_) will follow the .Net [Framework Design Guidelines](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index). For more information, see [Name your assembly definition files](#name-your-assembly-definition-files).\n\t\n1. **Add samples to your package (code & assets).**\n\n\tThe Package Manager recognizes the *Samples* directory in a package but does not import samples into Unity when the package is added to a project by default. Users can import samples into their */Assets* directory by clicking the **Import in project** button from the [Details view](https://docs.unity3d.com/Manual/upm-ui-details.html) of your package in the Package Manager window.\n\n\tIf your package contains a sample:\n\n\t* Rename the *Samples/Example* folder, and update the *.sample.json* file in it.\n\n\t* If your package contains multiple samples, make a copy of the *Samples/Example* folder for each sample, and update each *.sample.json* file accordingly.\n\n\tDelete the *Samples* folder altogether if your package does not need samples.\n\n1. **Validate your package using the Validation Suite.**\n\n\tBefore you publish your package, you need to make sure that it passes all the necessary validation checks by using the [Package Validation Suite](https://github.cds.internal.unity3d.com/unity/com.unity.package-validation-suite) extension. This is *required*.\n\n\tFor more information, see [Validate your package](#validate-your-package).\n\n1. **Follow our design guidelines**\n\n\tFollow these design guidelines when creating your package:\n\n\t* The [package design standards](https://confluence.hq.unity3d.com/display/UX/Packages) on Confluence.\n\n\t* The [design checklist](https://unitytech.github.io/unityeditor-hig/topics/checklist.html) from Unity's Human Interface Guidelines.\n\n\t* The namespace for code in the asmdef *must* match the asmdef name, except the initial `Unity`, which should be replaced with `UnityEngine` or `UnityEditor`.\n\n\t* For **Runtime code**, only use the `Unity` namespace for code that has no dependency on anything in `UnityEngine` or `UnityEditor` and instead uses `ECS` and other `Unity`-namespace systems.\n\n1. **Add tests to your package.**\n\n\tFor **Editor tests**:\n\t* Write all your Editor Tests in *Tests/Editor*\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Editor code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Editor.Tests\")]`.\n\n\tFor **Playmode Tests**:\n\t* Write all your Playmode Tests in *Tests/Runtime*.\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Runtime code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Tests\")]`.\n\n1. **Setup your package CI.**\n\n\tMake sure your package continues to work against trunk or any other branch by setting up automated testing on every commit. See the [Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that explains how to set up your package CI.\n\n\tThis starter kit contains the minimum recommended workflow for package CI, which provides the barebones to: `pack`, `test` and `publish` your packages. It also contains the required configuration to `promote` your **preview** packages to production.\n\n1. **Update *CHANGELOG.md*.**\n\n\tEvery new feature or bug fix should have a trace in this file. For more details on the chosen changelog format, see [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).\n\n\n\n### Fill out your package manifest\n\n1. Update the following required fields in file *package.json* (see [Confluence](https://confluence.hq.unity3d.com/pages/viewpage.action?pageId=39065257) for more information):\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"name\"` | Set the package name, following this naming convention: `\"com.unity.[your-package-name]\"`, without capital letters. For example, `\"com.unity.2d.animation\"`. |\n\t| `\"displayName\"` | Set the package's user-friendly display name. For example, `\"Terrain Builder SDK\"`. <br><br>__Note:__ Use a display name that will help users understand what your package is intended for. |\n\t| `\"version\"` | Set the package version in `\"X.Y.Z\"` format, following these [Semantic Versioning](http://semver.org/spec/v2.0.0.html) guidelines:<br>- To introduce a breaking API change, increment the major version (**X**.Y.Z).<br>- To introduce a new feature, increment the minor version (X.**Y**.Z).<br>- To introduce a bug fix, increment the patch version (X.Y.**Z**) |\n\t| `\"unity\"` | Set the Unity version your package is compatible with. For example: `\"2018.1\"`. |\n\t| `\"unityRelease\"` | Specify the Unity patch release your package is compatible with. For example: `\"0a8\"`.<br/><br/>__Note:__ This field is only required when the specific Unity version has a patch release. |\n\t| `\"description\"` | This description appears in the Package Manager window when the user selects this package from the list. For best results, use this text to summarize what the package does and how it can benefit the user.<br><br>Special formatting characters are supported, including line breaks (`\\n`) and unicode characters such as bullets (`\\u25AA`). For more information, see the [Writing Package docs](https://confluence.hq.unity3d.com/display/DOCS/Writing+Package+docs) page on Confluence. |\n\n1. Update the following recommended fields in file **package.json**:\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"dependencies\"` | List of packages this package depends on.  All dependencies will also be downloaded and loaded in a project with your package.  Here's an example:<br/><br/>`dependencies: {`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.ads\": \"1.0.0\",`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.analytics\": \"2.0.0\"`<br/>`}` |\n\t| `\"keywords\"` | An array of keywords related to the package. This field is currently purely informational. |\n\t| `\"type\"` | The type of your package. This is used to determine the visibility of your package in the Project Browser and the visibility of its Assets in the Object Picker. The `\"tool\"` and `\"library\"` types are used to set your package and its Assets as hidden by default. If not present or set to another value, your package and its Assets are visible by default. |\n\t| `\"hideInEditor\"` | A boolean value that overrides the package visibility set by the package type. If set to `false`, the default value, your package and its Assets are **always** visible by default; if set to `true`, your package and its Assets are **always** hidden by default. |\n\n\t**Notes**:\n\t- For packages in development, neither `\"type\"` nor `\"hideInEditor\"` are used. The package is **always** visible in the Project Browser and its Assets are **always** visible in the Object Picker.\n\t- The user is **always** able to toggle the package visibility in the Project Browser, as well as their Assets visibility in the Object Picker.\n\n### Document your package\n\nYou need to document your public APIs and provide task-oriented documentation for your features:\n\n1. Document all of [your public APIs](#document-your-public-apis) and [your features](#document-your-features).\n2. [Test your documentation locally](#test-your-documentation-locally).\n3. [Get your documentation published](#get-your-documentation-published).\n\nYour package should include the documentation source in your package, but not the generated HTML.\n\nThe page in the user manual that links to package documentation is [Packages documentation](http://docs.hq.unity3d.com/Documentation/Manual/PackagesList.html).\n\n#### Document your public APIs\n\nAPI documentation is generated from any [XmlDoc tagged comments](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments) found in the *.cs* files included in the package.  \n\nYou can use Visual Studio to autogenerate the correct tags by entering the documentation comments (`///`) in the empty line above your code. Visual Studio automatically detects which tags your code needs and inserts them. For example, if you write a method with two parameters that returns a value, Visual Studio gives you the **summary** tag (for the method description), two **param** tags, and one **returns** tag:\n\n```c#\n/// <summary>\n///\n/// </summary>\n/// <param name=\"One\"></param>\n/// <param name=\"Two\"></param>\n/// <returns></returns>\npublic bool TestingXmlDoc(int One, int Two)\n{\n\n}\n```\n\nSee the [Editor/EditorExample.cs](Editor/EditorExample.cs) file in this package for examples of how to document classes, methods, properties, and enums.\n\nYou need to document all public APIs. If you don't need an API to be accessed by clients, mark it as internal instead:\n\n1. Add a custom *filter.yml* file to the package *Documentation~* folder.  \n\n2. Add these rules to your custom *filter.yml* file. These rules make the DocFX configuration consistent with packages that don't have a custom filter:\n\n\t```yaml\n\tapiRules:\n\t  - exclude:\n\t    # inherited Object methods\n\t    uidRegex: ^System\\.Object\\..*$\n\t    type: Method\n\t  - exclude:\n\t    # mentioning types from System.* namespace\n\t    uidRegex: ^System\\..*$\n\t    type: Type\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Member\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Type\n\t```\n\n3. Specify classes to exclude by UID or by specifying regular expressions. For information about the rules for the filters, see the [DocFX guide](https://dotnet.github.io/docfx/tutorial/howto_filter_out_unwanted_apis_attributes.html).\n\n#### Document your features\n\nWrite the Manual documentation using [GitHub-flavored Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) in *.md* files stored under the *Documentation~* folder. The *Documentation~* folder is suffixed with `~` to prevent its contents from being loaded in the Editor (recommended). Alternatively, you could use *.Documentation* for the folder name.\n\nThis preliminary, high-level documentation should introduce users to the features and sample files included in your package.\n\nAll packages that expose UI in editor or runtime features should use one of the appropriate documentation example guides under the *Documentation~* folder:\n\n* [tools-package-guide.md](Documentation~/tools-package-guide.md) for a package that includes features that augment the Unity Editor or Runtime (modules, tools, and libraries)\n* [sample-package-guide.md](Documentation~/sample-package-guide.md) for a package that includes sample files\n* [test-package-guide.md](Documentation~/test-package-guide.md) for a package that provides tests\n\nFor instructions, see the [documentation guidelines](Documentation~/index.md).\n\n#### Test your documentation locally\n\nAs you are developing your documentation, you can see what your documentation will look like by using the DocTools package: **com.unity.package-manager-doctools** (optional).\n\nOnce the DocTools package is installed, it displays a **Generate Documentation** button in the Package Manager window's Details view for any installed or embedded packages. To install the extension, see [Installing the DocTools package](https://confluence.hq.unity3d.com/display/DOCS/Package+documentation+with+Git#PackagedocumentationwithGit-InstallingDocTools) on Confluence.\n\nThe DocTools extension is still in preview, if you come across arguable results, please discuss them on **#docs-packman**.\n\n#### Get your documentation published\n\nWhen the documentation is complete, notify the technical writer assigned to your team or project. If you don't know which technical writer is assigned, fill out the [Package Docs Questions](https://docs.google.com/document/d/1vI0zbNX9OausEwYhg_kl9CIDNf4taExjON0fyp2cHS0) form, [log a JIRA DOC ticket](https://unity3d.atlassian.net/secure/CreateIssue!default.jspa?selectedProjectId=12200&issuetype=3) and attach the form to that ticket.\n\nYou can also ask for help or clarification on **#devs-documentation**.\n\n> **Note:** The package will remain in **preview** mode until the final documentation is completed.  Users will have access to the developer-generated documentation only in preview packages.\n\nAfter the technical writer reviews the documentation, they will create a pull request in the package git repository. The package's development team will then need to submit a new package version with the updated docs.\n\n\n\n### Name your assembly definition files\n\nIf your package contains Editor code, rename and modify [Editor/Unity.YourPackageName.Editor.asmdef](Editor/Unity.YourPackageName.Editor.asmdef). Otherwise, delete the *Editor* directory.\n\n* Name **must** match your package name, suffixed by `.Editor` (for example, `Unity.[YourPackageName].Editor`).\n* Assembly **must** reference `Unity.[YourPackageName]` (if you have any runtime code).\n* Platforms **must** include `\"Editor\"`.\n\nIf your package contains code that needs to be included in Unity runtime builds, rename and modify [Runtime/Unity.YourPackageName.asmdef](Runtime/Unity.YourPackageName.asmdef). Otherwise, delete the *Runtime* directory.\n\n* Name **must** match your package name (for example,`Unity.[YourPackageName]`)\n\nIf your package has Editor code, you **must** have Editor Tests. In that case, rename and modify [Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef](Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Editor.Tests` (for example, `Unity.[YourPackageName].Editor.Tests`)\n* Assembly **must** reference `Unity.[YourPackageName].Editor` and `Unity.[YourPackageName]` (if you have any Runtime code).\n* Platforms **must** include `\"Editor\"`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Editor Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\nIf your package has Runtime code, you **must** have Playmode Tests. In that case, rename and modify [Tests/Runtime/Unity.YourPackageName.Tests.asmdef](Tests/Runtime/Unity.YourPackageName.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Tests` (for example, `Unity.[YourPackageName].Tests`)\n* Assembly **must** reference `Unity.[YourPackageName]`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Playmode Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\n\n\n### Validate your package\n\nTo install the extension, follow these steps:\n\n1. Make sure you have `Package Manager UI v1.9.6` or above.\n\n2. Make sure your project manifest points to the Candidates registry, which you can do by changing the **registry** line to:\n\n\t```json\n\t\"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n\t```\n\n3. From the Package Manager window, install the latest version of the **Package Validation Suite** with the scope set to **All Packages**. If you don't see it in the list, make sure **Advanced** &gt; **Show preview packages** is enabled.\n\nOnce the Validation Suite package is installed, a **Validate** button appears in the details pane when you select your installed package from the Package Manager window.\n\nTo run the tests:\n\n1. Click the **Validate** button to run a series of tests. A **See Results** button appears after the test run.\n2. Click the **See Results** button for additional explanation:\n\t* If it succeeds, a green bar displays a **Success** message.\n\t* If it fails, a red bar displays a **Failed** message.\n\nThe validation suite is still in preview, so if you come across arguable results, please discuss them on **#devs-packman**.\n\n\n\n## Create a Pre-Release Package\nPre-Release Packages are a great way of getting your features in front of Unity Developers in order to get early feedback on functionality and UI designs. Pre-Release packages need to go through the publishing to production flow, as would any other package, but with diminished requirements:\n\n  * Expected Package structure respected\n  * Package loads in Unity Editor without errors\n  * License file present - With third party notices file if necessary\n  * Test coverage is good - Optional but preferred\n  * Public APIs documented, minimal feature docs exists- Optional but preferred\n\nThe only supported Pre-Release tag is **preview** which you suffix to the version number of the package in the *package.json* manifest file. For example:\n\n```json\n\"version\" : \"1.2.0-preview\"\n```\n\n\n\n## Register your package\n\nIf you think you are working on a feature that is a good package candidate, please take a minute to tell Release Management about it in the **#devs-pkg-promotion** channel.\n\nWorking with the board of dev directors and with product management, we will schedule the entry of the candidates in the ecosystem, based on technical challenges and on our feature roadmap.\nDon’t hesitate to reach out and join us on **#devs-packman** on Slack.\n\n## Share your package\n\nIf you want to share your project with other developers, the steps are similar to what's presented above. On the other developer's machine:\n\n1. Start **Unity** and create a local empty project.\n\n1. Launch the console (or terminal) application, navigate to the newly created project folder, and then clone your repository in the `Packages` directory:\n\n    ```shell\n    cd <YourProjectPath>/Packages\n    git clone https://github.cdsinternal.unity3d.com/unity/[your-package-name].git com.unity.[sub-group].[your-package-name]\n    ```\n    > __Note:__ Your directory name must be the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n## Make sure your package meets all legal requirements\n\nAll packages must COMPLETE AND SUBMIT [THIS FORM](https://docs.google.com/forms/d/e/1FAIpQLSe3H6PARLPIkWVjdB_zMvuIuIVtrqNiGlEt1yshkMCmCMirvA/viewform) to receive approval. It is a simple, streamlined form that tells legal if there are any potential issues that need to be addressed prior to publication.\n\nIf your package has third-party elements and its licenses are approved, then all the licenses must be added to the **Third Party Notices.md** file. If you have more than one license, duplicate the `Component Name/License Type/Provide License Details` section for each additional license.\n\n> **Note:** A URL can work as long as it actually points to the reproduced license and the copyright information _(if applicable)_.\n\nIf your package does not have third party elements, you can remove the *Third Party Notices.md* file from your package.\n\n## Preparing your package for the Candidates registry\n\nBefore publishing your package to production, you must send your package on the Package Manager's internal **candidates** repository.  The candidates repository is monitored by QA and release management, and is where package validation will take place before it is accepted in production.\n\n1. Publishing your changes to the Package Manager's **Candidates** registry happens from Github.cds.  To do so, set up your project's Continuous integration (CI), which will be triggered by \"Tags\" on your branches.\n\n\tFor information see [the Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that describes how to set up CI for your package.\n\n1. Test your package locally. Once your package is published on the **Candidates** registry, you can test your package in the editor by creating a new project, and editing the project's *manifest.json* file to point to your candidate package:\n\n      ```json\n      dependencies: {\n        \"com.unity.[sub-group].[your-package-name]\": \"0.1.0\"\n      },\n      \"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n      ```\n\n## Get your package published to Production\n\nPackages are promoted to the **Production** registry from the **Candidates** registry, as described above. Your package must meet [certain criteria](https://docs.google.com/document/d/1TSnlSKJ6_h0C-CYO2LvV0fyGxJvH6OxC2-heyN8o-Gw/edit#heading=h.xxfb5jk2jda2) before you can submit a request to promote a package to production.\n\nOnce you feel comfortable that your package meets the list of Release Management Criteria, ask to be promoted from candidates to production by going to **#devs-pkg-promotion**.\n\nAlso, once you have a package in production for a few versions and it was used by real users, you can ask to be whitelisted to appear in the Package Manager window. Your package will not be visible in the Package Manager window until it is published AND whitelisted by Release Management.\n\n**_Release management will validate your package content, and check that the editor/playmode tests pass before promoting the package to production._**\n\n### Verified status and bundled packages\nIf your package is meant to ship with a release of the editor (**Verified Packages** and **Bundled Packages**), follow these steps:\n1. To be marked as verified, in trunk, modify the editor manifest (*[root]\\External\\PackageManager\\Editor\\manifest.json*) to include your package in the **verified** list.\n\n1. If your package is not verified, but only bundled with the editor, submit one or more Test Project(s) in Ono, so that your new package can be tested in all ABVs moving forward.\n\n\tThe following steps will create a test project that will run in ABVs, load your package into the project, and run all the tests found in your package. The better your test coverage, the more confident you'll be that your package works with trunk.\n\n\t* Create a branch in Ono, based on the latest branch this package must be compatible with (trunk, or release branch).\n\t* If your package contains **Editor Tests**:\n\t\t* In *[root]\\Tests\\Editor.Tests*, create a new EditorTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t\tTo get a bare package for an EditorTest Project, click [here](https://oc.unity3d.com/index.php/s/Cldvuy6NpxqYy8y).\n\n\t\t* Modify the project’s *manifest.json* file to include the production version of the package (`name@version`).\n\n\t\t* Your project's *manifest.json* file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\t* If your package contains **PlaymodeTests**:\n\t\t* In *[root]\\Tests\\PlaymodeTests*, create a new PlaymodeTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t* Modify the project’s *manifest.json* file to include the candidate version of the package (`name@version`).\n\n\t\t* Your project's manifest.json file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\n\t\t* Commit your branch changes to Ono, and run all Windows & Mac Editor/PlayMode tests (not full ABV) in Katana.\n\n1. Once the tests are green on Katana, create your PR, add both **Latest Release Manager** and **Trunk Merge Queue** as reviewers.\n\n\n## FAQ\n\n**What’s the difference between a preview package and a verified package?**\n\nA preview package is a great way to develop and get feedback on new features and functionality.  Preview package can be created against any version of Unity 2018.1+, and can be made discoverable through the Package Manager UI by issuing a request in #devs-packman.  Quality and release schedule is up to the package owner, although minimum bars are set in place to ensure the package contains the right licenses, documentation, and a comprehensive set of tests.\n\nOnce a preview package has been in the field for 2-3 release cycles of the editor, that package can be considered for Verification. Verified packages are tested with a specific version of the editor, and offer our users a compatibility guarantee.  Verified packages are the only packages that can be included in the set of templates we ship with the editor (Verified Templates).  Code for these packages must follow core development guidelines, including code cutoff dates, and are tested in katana for continued compatibility.\n\n**What’s the difference between a core package and a default package?**\n\nA core package is a package that has its code included with the Editor’s core code. This is interesting for packages that plan to change enormously in parallel to editor APIs. By moving package code to the editor’s repo, both core API\\functionality changes can be made along with required packages changes in the same PR.\nhttps://docs.google.com/document/d/1CMoanjR3KAdew-6n39JdCFmHkTp1oshs3vkpejapf4Q/edit\n\nA default package is a verified package that gets installed with every new project users create, regardless of the template they use. We should limit the number of default packages we support, as each default package adds to the project loading time. The list of default packages can be found in the editor manifest (https://ono.unity3d.com/unity/unity/files/de904b9ed9b44580ecd1e883f510daaa08182cc5/External/PackageManager/Editor/manifest.json).\n\n**What are the requirement for me to publish a preview package?**\n\nhttps://docs.google.com/document/d/1epGkAJRayJLN89_weA_-G5LFT_1uFifFZqBzAgvp_Zs/\n\n\n**What are the requirements for me to get my package verified for a version of unity?**\n\nhttps://docs.google.com/document/d/1oWC9XArVfkGMnqN9azR4hW4Pcd7-kQQw8Oy7ckP43JE/\n\n**How is my verified package tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How is my template tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How do I add samples to my package?**\n\nhttps://docs.google.com/document/d/1rmxGh6Z9gtbQlGUKCsVBaR0RyHvzq_gsWoYs6sttzYA/edit#heading=h.fg1e3sz56048\n\n**How do I setup CI or publishing options for my package?**\nhttps://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI\n\n**How can I add tests to my package?**\n\nThere’s a “Tests” directory in the package starter kit. If you add editor and playmode tests in that directory, they will make up the list of tests for your package.\n\n**The tests in my package bloat my package too much, what are my options?**\n\nhttps://docs.google.com/document/d/19kKIGFetde5ES-gKXQp_P7bxQ9UgBnBUu58-y7c1rTA/edit\n\n**Can I automate my package publishing yet?**\n\nNot just yet, but we’re working on it. The first automated publishing we will enable is the push to production for preview packages. Basically, when your package passes validation (loads in the editor without error, the tests in the package pass, validation suite run success), the package will be pushed to production automatically. Other publishing flows will soon be available as well, here’s the full list of internal package publishing flows Unity will support.  https://docs.google.com/document/d/1zdMzAtfi-vgM8NMPmwL40yinBeL3YImwTO5gSfGNCgs/edit\n\n**How do I get a template package started?**\n\nStart with the Project Template Starter Kit (you can request access in **#devs-packman**).\nhttps://github.cds.internal.unity3d.com/unity/com.unity.template-starter-kit\n\n**How do I get my package included in a template?**\n\nFirst and foremost, your package needs to be on the verified list of packages.  Only verified packages can get added to templates we ship with the editor. Then reach out to the templates community in **#devs-template** to open discussions on adding your package to one or more of our existing templates.\n\n**How can I test my package locally, as a user would?**\n\nhttps://confluence.hq.unity3d.com/display/PAK/How+to+add+a+git+package+to+your+project\n\n**What tests are included by the validation suite?**\n\nhttps://docs.google.com/spreadsheets/d/1CdO7D0WSirbZhjnVsdJxJwOPK4UdUDxSRBIqwyjm70w/edit#gid=0\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"}],"_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"421b0189e535cf53aaabe59ff2cde8db759be3f6"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"3.0.0-pre.4"},"name":"com.unity.purchasing","version":"3.0.0-pre.4","displayName":"In App Purchasing","description":"*** PREVIEW RELEASE ***\n\n*** Not intended for use with existing projects!\n\n*** PREVIEW RELEASE ***\n\n\nUnity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, and Samsung Galaxy app stores. Additionally, it can work in tandem with the Unity Distribution Portal in order to synchronize catalogs and transactions with even more stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple App Store and Google Play.\n\nAfter installing this package, please make sure to open the Services Window and enable In-App Purchasing to use its features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0"},"dist":{"shasum":"50b27339af08a0c12930f281e460326275a6afc5","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-3.0.0-pre.4.tgz"}},"3.0.0-pre.3":{"_id":"com.unity.purchasing@3.0.0-pre.3","type":"asset","unity":"2019.4","upmCi":{"footprint":"aa72ff9cbb68918ba39593bbc307e623c34f070f"},"readme":"# UPM Package Starter Kit\n\nThe purpose of this package starter kit is to provide the data structure and development guidelines for new packages meant for the **Unity Package Manager (UPM)**.\n\nThis is the first of many steps towards an automated package publishing experience within Unity. This package starter kit is merely a fraction of the creation, edition, validation, and publishing tools that we will end up with.\n\nWe hope you enjoy your experience. You can use **#devs-packman** on Slack to provide feedback or ask questions regarding your package development efforts.\n\n## Are you ready to become a package?\nThe Package Manager is a work-in-progress for Unity and, in that sense, there are a few criteria that must be met for your package to be considered on the package list at this time:\n- **Your code accesses public Unity C# APIs only.**  If you have a native code component, it will need to ship with an official editor release.  Internal API access might eventually be possible for Unity made packages, but not at this time.\n- **Your code doesn't require security, obfuscation, or conditional access control.**  Anyone should be able to download your package and access the source code.\n\n\n## Package structure\n\n```none\n<root>\n  ├── package.json\n  ├── README.md\n  ├── CHANGELOG.md\n  ├── LICENSE.md\n  ├── Third Party Notices.md\n  ├── QAReport.md\n  ├── Editor\n  │   ├── Unity.[YourPackageName].Editor.asmdef\n  │   └── EditorExample.cs\n  ├── Runtime\n  │   ├── Unity.[YourPackageName].asmdef\n  │   └── RuntimeExample.cs\n  ├── Tests\n  │   ├── .tests.json\n  │   ├── Editor\n  │   │   ├── Unity.[YourPackageName].Editor.Tests.asmdef\n  │   │   └── EditorExampleTest.cs\n  │   └── Runtime\n  │        ├── Unity.[YourPackageName].Tests.asmdef\n  │        └── RuntimeExampleTest.cs\n  ├── Samples\n  │   └── Example\n  │       ├── .sample.json\n  │       └── SampleExample.cs\n  └── Documentation~\n       ├── your-package-name.md\n       └── Images\n```\n\n## Develop your package\nPackage development works best within the Unity Editor.  Here's how to set that up:\n\n1. Clone the Package Starter Kit repository locally.\n\n\t- In a console (or terminal) application, choose a place to clone the repository and enter the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.package-starter-kit.git\n\t\t```\n\n1. Create a new repository for your package and clone to your desktop.\n\n\t- On Github.cds create a new repository with the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n\t- In a console (or terminal) application, choose a place to clone the repository and perform the following:\n\t\t```\n\t\tgit clone git@github.cds.internal.unity3d.com:unity/com.unity.[your-package-name]\n\t\t```\n\n1. Copy the contents of the Package Starter Kit folder to your new package.  Be careful not to copy the Package Starter Kit *.git* folder over.\n\n1. **Fill in your package information.**\n\n  Follow the instructions for [filling out your package manifest](#fill-out-your-package-manifest) (*package.json*). \n\n  Then update the `\"createSeparatePackage\"` field in the *Tests/.tests.json* file to set up testing for Continuous Integration (CI):\n\n  * Set it to false if you want the tests to remain part of the published package. This is the default value.\n\n  * Set it to true if you want the CI to create a separate package for these tests, and add the metadata at publish time to link the packages together. This allows you to have a large number of tests, or assets, etc. that you don't want to include in your main package, while making it easy to test your package with those tests & fixtures.\n\n1. Start **Unity**, create a local empty project and import your package into the project.\n\n1. In a console (or terminal) application, push the package starter kit files you copied in your new package repository to its remote.\n\t- Add them to your repository's list to version\n\t\t```git add .```\n\t- Commit to your new package's remote master\n\t\t```git commit```\n\t- Push to your new package's remote master\n\t\t```git push```\n\n1. Restart **Unity**. This forces the Package Manager to rescan your project so that it can find the new package that you just embedded. For more information on embedded packages see [Confluence](https://confluence.hq.unity3d.com/display/PAK/How+to+embed+a+package+in+your+project).\n\n1. **Update the *README.md* file.**\n\n\tIt should contain all pertinent information for developers using your package, such as:\n\n\t* Prerequistes\n\t* External tools or development libraries\n\t* Required installed Software\n\t* Command line examples to build, test, and run your package.\n\n1. **Rename and update your documentation file(s).**\n\n\tUse the samples included in this starter kit to create preliminary, high-level documentation. Your documentation should introduce users to the features and sample files included in your package. For more information, see [Document your package](#document-your-package).\n\n1. **Rename and update assembly definition files.**\n\n\t\n\tChoose a name schema to ensure that the name of the assembly built from the assembly definition file (_.asmdef_) will follow the .Net [Framework Design Guidelines](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/index). For more information, see [Name your assembly definition files](#name-your-assembly-definition-files).\n\t\n1. **Add samples to your package (code & assets).**\n\n\tThe Package Manager recognizes the *Samples* directory in a package but does not import samples into Unity when the package is added to a project by default. Users can import samples into their */Assets* directory by clicking the **Import in project** button from the [Details view](https://docs.unity3d.com/Manual/upm-ui-details.html) of your package in the Package Manager window.\n\n\tIf your package contains a sample:\n\n\t* Rename the *Samples/Example* folder, and update the *.sample.json* file in it.\n\n\t* If your package contains multiple samples, make a copy of the *Samples/Example* folder for each sample, and update each *.sample.json* file accordingly.\n\n\tDelete the *Samples* folder altogether if your package does not need samples.\n\n1. **Validate your package using the Validation Suite.**\n\n\tBefore you publish your package, you need to make sure that it passes all the necessary validation checks by using the [Package Validation Suite](https://github.cds.internal.unity3d.com/unity/com.unity.package-validation-suite) extension. This is *required*.\n\n\tFor more information, see [Validate your package](#validate-your-package).\n\n1. **Follow our design guidelines**\n\n\tFollow these design guidelines when creating your package:\n\n\t* The [package design standards](https://confluence.hq.unity3d.com/display/UX/Packages) on Confluence.\n\n\t* The [design checklist](https://unitytech.github.io/unityeditor-hig/topics/checklist.html) from Unity's Human Interface Guidelines.\n\n\t* The namespace for code in the asmdef *must* match the asmdef name, except the initial `Unity`, which should be replaced with `UnityEngine` or `UnityEditor`.\n\n\t* For **Runtime code**, only use the `Unity` namespace for code that has no dependency on anything in `UnityEngine` or `UnityEditor` and instead uses `ECS` and other `Unity`-namespace systems.\n\n1. **Add tests to your package.**\n\n\tFor **Editor tests**:\n\t* Write all your Editor Tests in *Tests/Editor*\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Editor code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Editor.Tests\")]`.\n\n\tFor **Playmode Tests**:\n\t* Write all your Playmode Tests in *Tests/Runtime*.\n\t* If your tests require access to internal methods, add an *AssemblyInfo.cs* file to your Runtime code and use `[assembly: InternalsVisibleTo(\"Unity.[YourPackageName].Tests\")]`.\n\n1. **Setup your package CI.**\n\n\tMake sure your package continues to work against trunk or any other branch by setting up automated testing on every commit. See the [Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that explains how to set up your package CI.\n\n\tThis starter kit contains the minimum recommended workflow for package CI, which provides the barebones to: `pack`, `test` and `publish` your packages. It also contains the required configuration to `promote` your **preview** packages to production.\n\n1. **Update *CHANGELOG.md*.**\n\n\tEvery new feature or bug fix should have a trace in this file. For more details on the chosen changelog format, see [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).\n\n\n\n### Fill out your package manifest\n\n1. Update the following required fields in file *package.json* (see [Confluence](https://confluence.hq.unity3d.com/pages/viewpage.action?pageId=39065257) for more information):\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"name\"` | Set the package name, following this naming convention: `\"com.unity.[your-package-name]\"`, without capital letters. For example, `\"com.unity.2d.animation\"`. |\n\t| `\"displayName\"` | Set the package's user-friendly display name. For example, `\"Terrain Builder SDK\"`. <br><br>__Note:__ Use a display name that will help users understand what your package is intended for. |\n\t| `\"version\"` | Set the package version in `\"X.Y.Z\"` format, following these [Semantic Versioning](http://semver.org/spec/v2.0.0.html) guidelines:<br>- To introduce a breaking API change, increment the major version (**X**.Y.Z).<br>- To introduce a new feature, increment the minor version (X.**Y**.Z).<br>- To introduce a bug fix, increment the patch version (X.Y.**Z**) |\n\t| `\"unity\"` | Set the Unity version your package is compatible with. For example: `\"2018.1\"`. |\n\t| `\"unityRelease\"` | Specify the Unity patch release your package is compatible with. For example: `\"0a8\"`.<br/><br/>__Note:__ This field is only required when the specific Unity version has a patch release. |\n\t| `\"description\"` | This description appears in the Package Manager window when the user selects this package from the list. For best results, use this text to summarize what the package does and how it can benefit the user.<br><br>Special formatting characters are supported, including line breaks (`\\n`) and unicode characters such as bullets (`\\u25AA`). For more information, see the [Writing Package docs](https://confluence.hq.unity3d.com/display/DOCS/Writing+Package+docs) page on Confluence. |\n\n1. Update the following recommended fields in file **package.json**:\n\n\t| **Attribute name** | **Description** |\n\t|:---|:---|\n\t| `\"dependencies\"` | List of packages this package depends on.  All dependencies will also be downloaded and loaded in a project with your package.  Here's an example:<br/><br/>`dependencies: {`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.ads\": \"1.0.0\",`<br/>&nbsp;&nbsp;&nbsp;&nbsp;`\"com.unity.analytics\": \"2.0.0\"`<br/>`}` |\n\t| `\"keywords\"` | An array of keywords related to the package. This field is currently purely informational. |\n\t| `\"type\"` | The type of your package. This is used to determine the visibility of your package in the Project Browser and the visibility of its Assets in the Object Picker. The `\"tool\"` and `\"library\"` types are used to set your package and its Assets as hidden by default. If not present or set to another value, your package and its Assets are visible by default. |\n\t| `\"hideInEditor\"` | A boolean value that overrides the package visibility set by the package type. If set to `false`, the default value, your package and its Assets are **always** visible by default; if set to `true`, your package and its Assets are **always** hidden by default. |\n\n\t**Notes**:\n\t- For packages in development, neither `\"type\"` nor `\"hideInEditor\"` are used. The package is **always** visible in the Project Browser and its Assets are **always** visible in the Object Picker.\n\t- The user is **always** able to toggle the package visibility in the Project Browser, as well as their Assets visibility in the Object Picker.\n\n### Document your package\n\nYou need to document your public APIs and provide task-oriented documentation for your features:\n\n1. Document all of [your public APIs](#document-your-public-apis) and [your features](#document-your-features).\n2. [Test your documentation locally](#test-your-documentation-locally).\n3. [Get your documentation published](#get-your-documentation-published).\n\nYour package should include the documentation source in your package, but not the generated HTML.\n\nThe page in the user manual that links to package documentation is [Packages documentation](http://docs.hq.unity3d.com/Documentation/Manual/PackagesList.html).\n\n#### Document your public APIs\n\nAPI documentation is generated from any [XmlDoc tagged comments](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/xmldoc/xml-documentation-comments) found in the *.cs* files included in the package.  \n\nYou can use Visual Studio to autogenerate the correct tags by entering the documentation comments (`///`) in the empty line above your code. Visual Studio automatically detects which tags your code needs and inserts them. For example, if you write a method with two parameters that returns a value, Visual Studio gives you the **summary** tag (for the method description), two **param** tags, and one **returns** tag:\n\n```c#\n/// <summary>\n///\n/// </summary>\n/// <param name=\"One\"></param>\n/// <param name=\"Two\"></param>\n/// <returns></returns>\npublic bool TestingXmlDoc(int One, int Two)\n{\n\n}\n```\n\nSee the [Editor/EditorExample.cs](Editor/EditorExample.cs) file in this package for examples of how to document classes, methods, properties, and enums.\n\nYou need to document all public APIs. If you don't need an API to be accessed by clients, mark it as internal instead:\n\n1. Add a custom *filter.yml* file to the package *Documentation~* folder.  \n\n2. Add these rules to your custom *filter.yml* file. These rules make the DocFX configuration consistent with packages that don't have a custom filter:\n\n\t```yaml\n\tapiRules:\n\t  - exclude:\n\t    # inherited Object methods\n\t    uidRegex: ^System\\.Object\\..*$\n\t    type: Method\n\t  - exclude:\n\t    # mentioning types from System.* namespace\n\t    uidRegex: ^System\\..*$\n\t    type: Type\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Member\n\t  - exclude:\n\t    hasAttribute:\n\t      uid: System.ObsoleteAttribute\n\t    type: Type\n\t```\n\n3. Specify classes to exclude by UID or by specifying regular expressions. For information about the rules for the filters, see the [DocFX guide](https://dotnet.github.io/docfx/tutorial/howto_filter_out_unwanted_apis_attributes.html).\n\n#### Document your features\n\nWrite the Manual documentation using [GitHub-flavored Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) in *.md* files stored under the *Documentation~* folder. The *Documentation~* folder is suffixed with `~` to prevent its contents from being loaded in the Editor (recommended). Alternatively, you could use *.Documentation* for the folder name.\n\nThis preliminary, high-level documentation should introduce users to the features and sample files included in your package.\n\nAll packages that expose UI in editor or runtime features should use one of the appropriate documentation example guides under the *Documentation~* folder:\n\n* [tools-package-guide.md](Documentation~/tools-package-guide.md) for a package that includes features that augment the Unity Editor or Runtime (modules, tools, and libraries)\n* [sample-package-guide.md](Documentation~/sample-package-guide.md) for a package that includes sample files\n* [test-package-guide.md](Documentation~/test-package-guide.md) for a package that provides tests\n\nFor instructions, see the [documentation guidelines](Documentation~/index.md).\n\n#### Test your documentation locally\n\nAs you are developing your documentation, you can see what your documentation will look like by using the DocTools package: **com.unity.package-manager-doctools** (optional).\n\nOnce the DocTools package is installed, it displays a **Generate Documentation** button in the Package Manager window's Details view for any installed or embedded packages. To install the extension, see [Installing the DocTools package](https://confluence.hq.unity3d.com/display/DOCS/Package+documentation+with+Git#PackagedocumentationwithGit-InstallingDocTools) on Confluence.\n\nThe DocTools extension is still in preview, if you come across arguable results, please discuss them on **#docs-packman**.\n\n#### Get your documentation published\n\nWhen the documentation is complete, notify the technical writer assigned to your team or project. If you don't know which technical writer is assigned, fill out the [Package Docs Questions](https://docs.google.com/document/d/1vI0zbNX9OausEwYhg_kl9CIDNf4taExjON0fyp2cHS0) form, [log a JIRA DOC ticket](https://unity3d.atlassian.net/secure/CreateIssue!default.jspa?selectedProjectId=12200&issuetype=3) and attach the form to that ticket.\n\nYou can also ask for help or clarification on **#devs-documentation**.\n\n> **Note:** The package will remain in **preview** mode until the final documentation is completed.  Users will have access to the developer-generated documentation only in preview packages.\n\nAfter the technical writer reviews the documentation, they will create a pull request in the package git repository. The package's development team will then need to submit a new package version with the updated docs.\n\n\n\n### Name your assembly definition files\n\nIf your package contains Editor code, rename and modify [Editor/Unity.YourPackageName.Editor.asmdef](Editor/Unity.YourPackageName.Editor.asmdef). Otherwise, delete the *Editor* directory.\n\n* Name **must** match your package name, suffixed by `.Editor` (for example, `Unity.[YourPackageName].Editor`).\n* Assembly **must** reference `Unity.[YourPackageName]` (if you have any runtime code).\n* Platforms **must** include `\"Editor\"`.\n\nIf your package contains code that needs to be included in Unity runtime builds, rename and modify [Runtime/Unity.YourPackageName.asmdef](Runtime/Unity.YourPackageName.asmdef). Otherwise, delete the *Runtime* directory.\n\n* Name **must** match your package name (for example,`Unity.[YourPackageName]`)\n\nIf your package has Editor code, you **must** have Editor Tests. In that case, rename and modify [Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef](Tests/Editor/Unity.YourPackageName.Editor.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Editor.Tests` (for example, `Unity.[YourPackageName].Editor.Tests`)\n* Assembly **must** reference `Unity.[YourPackageName].Editor` and `Unity.[YourPackageName]` (if you have any Runtime code).\n* Platforms **must** include `\"Editor\"`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Editor Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\nIf your package has Runtime code, you **must** have Playmode Tests. In that case, rename and modify [Tests/Runtime/Unity.YourPackageName.Tests.asmdef](Tests/Runtime/Unity.YourPackageName.Tests.asmdef).\n\n* Name **must** match your package name, suffixed by `.Tests` (for example, `Unity.[YourPackageName].Tests`)\n* Assembly **must** reference `Unity.[YourPackageName]`.\n* Optional Unity references **must** include `\"TestAssemblies\"` to allow your Playmode Tests to show up in the Test Runner or run on Katana when your package is listed in the project manifest's `testables` field.\n\n\n\n### Validate your package\n\nTo install the extension, follow these steps:\n\n1. Make sure you have `Package Manager UI v1.9.6` or above.\n\n2. Make sure your project manifest points to the Candidates registry, which you can do by changing the **registry** line to:\n\n\t```json\n\t\"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n\t```\n\n3. From the Package Manager window, install the latest version of the **Package Validation Suite** with the scope set to **All Packages**. If you don't see it in the list, make sure **Advanced** &gt; **Show preview packages** is enabled.\n\nOnce the Validation Suite package is installed, a **Validate** button appears in the details pane when you select your installed package from the Package Manager window.\n\nTo run the tests:\n\n1. Click the **Validate** button to run a series of tests. A **See Results** button appears after the test run.\n2. Click the **See Results** button for additional explanation:\n\t* If it succeeds, a green bar displays a **Success** message.\n\t* If it fails, a red bar displays a **Failed** message.\n\nThe validation suite is still in preview, so if you come across arguable results, please discuss them on **#devs-packman**.\n\n\n\n## Create a Pre-Release Package\nPre-Release Packages are a great way of getting your features in front of Unity Developers in order to get early feedback on functionality and UI designs. Pre-Release packages need to go through the publishing to production flow, as would any other package, but with diminished requirements:\n\n  * Expected Package structure respected\n  * Package loads in Unity Editor without errors\n  * License file present - With third party notices file if necessary\n  * Test coverage is good - Optional but preferred\n  * Public APIs documented, minimal feature docs exists- Optional but preferred\n\nThe only supported Pre-Release tag is **preview** which you suffix to the version number of the package in the *package.json* manifest file. For example:\n\n```json\n\"version\" : \"1.2.0-preview\"\n```\n\n\n\n## Register your package\n\nIf you think you are working on a feature that is a good package candidate, please take a minute to tell Release Management about it in the **#devs-pkg-promotion** channel.\n\nWorking with the board of dev directors and with product management, we will schedule the entry of the candidates in the ecosystem, based on technical challenges and on our feature roadmap.\nDon’t hesitate to reach out and join us on **#devs-packman** on Slack.\n\n## Share your package\n\nIf you want to share your project with other developers, the steps are similar to what's presented above. On the other developer's machine:\n\n1. Start **Unity** and create a local empty project.\n\n1. Launch the console (or terminal) application, navigate to the newly created project folder, and then clone your repository in the `Packages` directory:\n\n    ```shell\n    cd <YourProjectPath>/Packages\n    git clone https://github.cdsinternal.unity3d.com/unity/[your-package-name].git com.unity.[sub-group].[your-package-name]\n    ```\n    > __Note:__ Your directory name must be the name of your package (Example: `\"com.unity.terrain-builder\"`).\n\n## Make sure your package meets all legal requirements\n\nAll packages must COMPLETE AND SUBMIT [THIS FORM](https://docs.google.com/forms/d/e/1FAIpQLSe3H6PARLPIkWVjdB_zMvuIuIVtrqNiGlEt1yshkMCmCMirvA/viewform) to receive approval. It is a simple, streamlined form that tells legal if there are any potential issues that need to be addressed prior to publication.\n\nIf your package has third-party elements and its licenses are approved, then all the licenses must be added to the **Third Party Notices.md** file. If you have more than one license, duplicate the `Component Name/License Type/Provide License Details` section for each additional license.\n\n> **Note:** A URL can work as long as it actually points to the reproduced license and the copyright information _(if applicable)_.\n\nIf your package does not have third party elements, you can remove the *Third Party Notices.md* file from your package.\n\n## Preparing your package for the Candidates registry\n\nBefore publishing your package to production, you must send your package on the Package Manager's internal **candidates** repository.  The candidates repository is monitored by QA and release management, and is where package validation will take place before it is accepted in production.\n\n1. Publishing your changes to the Package Manager's **Candidates** registry happens from Github.cds.  To do so, set up your project's Continuous integration (CI), which will be triggered by \"Tags\" on your branches.\n\n\tFor information see [the Confluence page](https://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI) that describes how to set up CI for your package.\n\n1. Test your package locally. Once your package is published on the **Candidates** registry, you can test your package in the editor by creating a new project, and editing the project's *manifest.json* file to point to your candidate package:\n\n      ```json\n      dependencies: {\n        \"com.unity.[sub-group].[your-package-name]\": \"0.1.0\"\n      },\n      \"registry\": \"https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-candidates\"\n      ```\n\n## Get your package published to Production\n\nPackages are promoted to the **Production** registry from the **Candidates** registry, as described above. Your package must meet [certain criteria](https://docs.google.com/document/d/1TSnlSKJ6_h0C-CYO2LvV0fyGxJvH6OxC2-heyN8o-Gw/edit#heading=h.xxfb5jk2jda2) before you can submit a request to promote a package to production.\n\nOnce you feel comfortable that your package meets the list of Release Management Criteria, ask to be promoted from candidates to production by going to **#devs-pkg-promotion**.\n\nAlso, once you have a package in production for a few versions and it was used by real users, you can ask to be whitelisted to appear in the Package Manager window. Your package will not be visible in the Package Manager window until it is published AND whitelisted by Release Management.\n\n**_Release management will validate your package content, and check that the editor/playmode tests pass before promoting the package to production._**\n\n### Verified status and bundled packages\nIf your package is meant to ship with a release of the editor (**Verified Packages** and **Bundled Packages**), follow these steps:\n1. To be marked as verified, in trunk, modify the editor manifest (*[root]\\External\\PackageManager\\Editor\\manifest.json*) to include your package in the **verified** list.\n\n1. If your package is not verified, but only bundled with the editor, submit one or more Test Project(s) in Ono, so that your new package can be tested in all ABVs moving forward.\n\n\tThe following steps will create a test project that will run in ABVs, load your package into the project, and run all the tests found in your package. The better your test coverage, the more confident you'll be that your package works with trunk.\n\n\t* Create a branch in Ono, based on the latest branch this package must be compatible with (trunk, or release branch).\n\t* If your package contains **Editor Tests**:\n\t\t* In *[root]\\Tests\\Editor.Tests*, create a new EditorTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t\tTo get a bare package for an EditorTest Project, click [here](https://oc.unity3d.com/index.php/s/Cldvuy6NpxqYy8y).\n\n\t\t* Modify the project’s *manifest.json* file to include the production version of the package (`name@version`).\n\n\t\t* Your project's *manifest.json* file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\t* If your package contains **PlaymodeTests**:\n\t\t* In *[root]\\Tests\\PlaymodeTests*, create a new PlaymodeTest Project (for new packages use **YourPackageName**) or use an existing project (for new versions of existing package).\n\n\t\t* Modify the project’s *manifest.json* file to include the candidate version of the package (`name@version`).\n\n\t\t* Your project's manifest.json file should contain the following line:\n\n\t\t\t```json\n\t\t\t\"testables\" : [ \"com.unity.[sub-group].[your-package-name]\" ]\n\t\t\t```\n\n\t\t* Commit your branch changes to Ono, and run all Windows & Mac Editor/PlayMode tests (not full ABV) in Katana.\n\n1. Once the tests are green on Katana, create your PR, add both **Latest Release Manager** and **Trunk Merge Queue** as reviewers.\n\n\n## FAQ\n\n**What’s the difference between a preview package and a verified package?**\n\nA preview package is a great way to develop and get feedback on new features and functionality.  Preview package can be created against any version of Unity 2018.1+, and can be made discoverable through the Package Manager UI by issuing a request in #devs-packman.  Quality and release schedule is up to the package owner, although minimum bars are set in place to ensure the package contains the right licenses, documentation, and a comprehensive set of tests.\n\nOnce a preview package has been in the field for 2-3 release cycles of the editor, that package can be considered for Verification. Verified packages are tested with a specific version of the editor, and offer our users a compatibility guarantee.  Verified packages are the only packages that can be included in the set of templates we ship with the editor (Verified Templates).  Code for these packages must follow core development guidelines, including code cutoff dates, and are tested in katana for continued compatibility.\n\n**What’s the difference between a core package and a default package?**\n\nA core package is a package that has its code included with the Editor’s core code. This is interesting for packages that plan to change enormously in parallel to editor APIs. By moving package code to the editor’s repo, both core API\\functionality changes can be made along with required packages changes in the same PR.\nhttps://docs.google.com/document/d/1CMoanjR3KAdew-6n39JdCFmHkTp1oshs3vkpejapf4Q/edit\n\nA default package is a verified package that gets installed with every new project users create, regardless of the template they use. We should limit the number of default packages we support, as each default package adds to the project loading time. The list of default packages can be found in the editor manifest (https://ono.unity3d.com/unity/unity/files/de904b9ed9b44580ecd1e883f510daaa08182cc5/External/PackageManager/Editor/manifest.json).\n\n**What are the requirement for me to publish a preview package?**\n\nhttps://docs.google.com/document/d/1epGkAJRayJLN89_weA_-G5LFT_1uFifFZqBzAgvp_Zs/\n\n\n**What are the requirements for me to get my package verified for a version of unity?**\n\nhttps://docs.google.com/document/d/1oWC9XArVfkGMnqN9azR4hW4Pcd7-kQQw8Oy7ckP43JE/\n\n**How is my verified package tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How is my template tested in Katana?**\n\nhttps://docs.google.com/document/d/1jwTh71ZGtB2vF0SsHEwivt2FunaJWMGDdQJTpYRj3EE/edit\n\n**How do I add samples to my package?**\n\nhttps://docs.google.com/document/d/1rmxGh6Z9gtbQlGUKCsVBaR0RyHvzq_gsWoYs6sttzYA/edit#heading=h.fg1e3sz56048\n\n**How do I setup CI or publishing options for my package?**\nhttps://confluence.hq.unity3d.com/display/PAK/Setting+up+your+package+CI\n\n**How can I add tests to my package?**\n\nThere’s a “Tests” directory in the package starter kit. If you add editor and playmode tests in that directory, they will make up the list of tests for your package.\n\n**The tests in my package bloat my package too much, what are my options?**\n\nhttps://docs.google.com/document/d/19kKIGFetde5ES-gKXQp_P7bxQ9UgBnBUu58-y7c1rTA/edit\n\n**Can I automate my package publishing yet?**\n\nNot just yet, but we’re working on it. The first automated publishing we will enable is the push to production for preview packages. Basically, when your package passes validation (loads in the editor without error, the tests in the package pass, validation suite run success), the package will be pushed to production automatically. Other publishing flows will soon be available as well, here’s the full list of internal package publishing flows Unity will support.  https://docs.google.com/document/d/1zdMzAtfi-vgM8NMPmwL40yinBeL3YImwTO5gSfGNCgs/edit\n\n**How do I get a template package started?**\n\nStart with the Project Template Starter Kit (you can request access in **#devs-packman**).\nhttps://github.cds.internal.unity3d.com/unity/com.unity.template-starter-kit\n\n**How do I get my package included in a template?**\n\nFirst and foremost, your package needs to be on the verified list of packages.  Only verified packages can get added to templates we ship with the editor. Then reach out to the templates community in **#devs-template** to open discussions on adding your package to one or more of our existing templates.\n\n**How can I test my package locally, as a user would?**\n\nhttps://confluence.hq.unity3d.com/display/PAK/How+to+add+a+git+package+to+your+project\n\n**What tests are included by the validation suite?**\n\nhttps://docs.google.com/spreadsheets/d/1CdO7D0WSirbZhjnVsdJxJwOPK4UdUDxSRBIqwyjm70w/edit#gid=0\n","license":"Unity Companion Package License v1.0","samples":[{"path":"Samples~/Example","description":"Sample Implementation of In App Purchasing.","displayName":"In App Purchasing Sample"}],"_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"1b885452215a17c49f708fd1166b89136eea15d4"},"_npmVersion":"5.6.0","_nodeVersion":"8.17.0","hideInEditor":false,"readmeFilename":"README.md","relatedPackages":{"com.unity.purchasing.tests":"3.0.0-pre.3"},"name":"com.unity.purchasing","version":"3.0.0-pre.3","displayName":"In App Purchasing","description":"*** PREVIEW RELEASE ***\n\n*** Not intended for use with existing projects!\n\n*** PREVIEW RELEASE ***\n\n\nUnity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, and Samsung Galaxy app stores. Additionally, it can work in tandem with the Unity Distribution Portal in order to synchronize catalogs and transactions with even more stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple App Store and Google Play.\n\nAfter installing this package, please make sure to open the Services Window and enable In-App Purchasing to use its features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0"},"dist":{"shasum":"c2e0d9a4988f8eda8f482db9c451af22afc834d2","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-3.0.0-pre.3.tgz"}},"2.1.1":{"_id":"com.unity.purchasing@2.1.1","type":"asset","unity":"2018.4","upmCi":{"footprint":"d5cc580dc415ee75cae47a1ac41a1cad0118c408"},"readme":"# Unity In App Purchasing\n\nImplementation of the Unity In App Purchasing API.\n\n## Release Notes\n\n- Adding Readme file\n- Adding local plugin importer callbacks.\n- Removing Bintray references in package.json","license":"Unity Companion Package License v1.0","_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"ab79b0c58006f61970a2136b4cba9ca76fde0edc"},"_npmVersion":"5.6.0","_nodeVersion":"8.11.1","unityRelease":"18f1","readmeFilename":"README.md","name":"com.unity.purchasing","version":"2.1.1","displayName":"In App Purchasing","description":"Unity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, and Samsung Galaxy app stores. Additionally, it can work in tandem with the Unity Distribution Portal in order to synchronize catalogs and transactions with even more stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple App Store and Google Play.\n\nAfter installing this package, please make sure to open the Services Window and enable In-App Purchasing to use its features. In the In-App Purchasing settings, please make sure to import the Asset Store plugin if you have not already done so. This is necessary to include all of the features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0"},"dist":{"shasum":"ec9602d9af54c98a2a7202d96d85a7c874378f2c","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-2.1.1.tgz"}},"2.1.0":{"_id":"com.unity.purchasing@2.1.0","type":"asset","unity":"2018.4","upmCi":{"footprint":"ce1628fd82b7c3627c8de4ab64223cac2e6b564b"},"readme":"# Unity In App Purchasing\n\nImplementation of the Unity In App Purchasing API.\n\n## Release Notes\n\n- Adding Readme file\n- Adding local plugin importer callbacks.\n- Removing Bintray references in package.json","license":"Unity Companion Package License v1.0","_npmUser":{},"repository":{"url":"https://github.cds.internal.unity3d.com/unity/com.unity.purchasing.git","type":"git","revision":"22c4e2f34edf6ab42c6514f44809a046bf184c50"},"_npmVersion":"5.6.0","_nodeVersion":"8.11.1","unityRelease":"18f1","readmeFilename":"README.md","name":"com.unity.purchasing","version":"2.1.0","displayName":"In App Purchasing","description":"Unity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, and Samsung Galaxy app stores. Additionally, it can work in tandem with the Unity Distribution Portal in order to synchronize catalogs and transactions with even more stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple App Store and Google Play.\n\nAfter installing this package, please make sure to open the Services Window and enable In-App Purchasing to use its features. In the In-App Purchasing settings, please make sure to import the Asset Store plugin if you have not already done so. This is necessary to include all of the features.","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.ugui":"1.0.0"},"dist":{"shasum":"c0e438b9ecd7c30e48b5e74e2257aa8839a03f2f","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-2.1.0.tgz"}},"2.0.6":{"_id":"com.unity.purchasing@2.0.6","unity":"2018.1","license":"Unity Companion Package License v1.0","scripts":{},"repository":{"url":"https://gitlab.cds.internal.unity3d.com/upm-packages/purchasing/com.unity.purchasing","type":"git","revision":"37674e38ef7548642e33bc97797a71b5eadbecac"},"name":"com.unity.purchasing","version":"2.0.6","displayName":"In App Purchasing","description":"Unity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, Samsung Galaxy, Tizen, Cloud Moolah MOO, Xiaomi Mi Game Pay App Stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple, Google Play, and Xiaomi Mi Game Pay.","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"5d1eb9889e23dad9f0b110fb06138347e196a210","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-2.0.6.tgz"}},"2.0.5":{"_id":"com.unity.purchasing@2.0.5","unity":"2018.1","license":"Unity Companion Package License v1.0","scripts":{},"repository":{"url":"https://gitlab.cds.internal.unity3d.com/upm-packages/purchasing/com.unity.purchasing","type":"git","revision":"37674e38ef7548642e33bc97797a71b5eadbecac"},"name":"com.unity.purchasing","version":"2.0.5","displayName":"In App Purchasing","description":"Unity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, Samsung Galaxy, Tizen, Cloud Moolah MOO, Xiaomi Mi Game Pay App Stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple, Google Play, and Xiaomi Mi Game Pay.","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"0c280e5200475a673d9c161e46bbfd35a1b42ff6","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-2.0.5.tgz"}},"2.0.3":{"_id":"com.unity.purchasing@2.0.3","unity":"2018.1","license":"Unity Companion Package License v1.0","name":"com.unity.purchasing","version":"2.0.3","displayName":"In App Purchasing","description":"Unity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, Samsung Galaxy, Tizen, Cloud Moolah MOO, Xiaomi Mi Game Pay App Stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple, Google Play, and Xiaomi Mi Game Pay.","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"760d7807b5abf8fe90aa2af559d48a249850b1be","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-2.0.3.tgz"}},"2.0.1":{"_id":"com.unity.purchasing@2.0.1","unity":"2018.1","license":"Unity Companion Package License v1.0","name":"com.unity.purchasing","version":"2.0.1","displayName":"In App Purchasing","description":"Unity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, Samsung Galaxy, Tizen, Cloud Moolah MOO, Xiaomi Mi Game Pay App Stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple, Google Play, and Xiaomi Mi Game Pay.","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"821cbd40dc6fb44ce5fd6d20ee6d4376685d0629","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-2.0.1.tgz"}},"2.0.0":{"_id":"com.unity.purchasing@2.0.0","unity":"2018.1","license":"Unity Companion Package License v1.0","name":"com.unity.purchasing","version":"2.0.0","displayName":"In App Purchasing","description":"Unity IAP supports the iOS, Mac, tvOS, Google Play, Facebook Gameroom, Windows, Amazon, Samsung Galaxy, Tizen, Cloud Moolah MOO, Xiaomi Mi Game Pay App Stores.\n\nWith Unity IAP, setting up in-app purchases for your game across multiple app stores has never been easier.\n\nUse one common API to access all stores for free. With just a few lines of code, you can fully understand and optimize your in-game economy.\n\nUnity IAP automatically couples with Unity Analytics enabling you to monitor and act on trends in your revenue and purchase data across multiple platforms.\n\nIncludes client-side receipt validation for Apple, Google Play, and Xiaomi Mi Game Pay.","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"e7b0e24f5889f6780b7c964abdac187cc9ff8bae","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-2.0.0.tgz"}},"0.0.19":{"_id":"com.unity.purchasing@0.0.19","unity":"2017.1","category":"AssetStore/Unity","name":"com.unity.purchasing","version":"0.0.19","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"abde5c6409b60f1ad2282018a931094eb7dc986a","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.19.tgz"}},"0.0.18":{"_id":"com.unity.purchasing@0.0.18","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.18","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"72967f00eb1bc9bf636e90087a83d7758f7e04ee","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.18.tgz"}},"0.0.17":{"_id":"com.unity.purchasing@0.0.17","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.17","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"528d6dc75efbdac4f1b2268512be013666b24057","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.17.tgz"}},"0.0.16":{"_id":"com.unity.purchasing@0.0.16","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.16","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"ece18364625774fcea4ba0611fd0316c996a6b25","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.16.tgz"}},"0.0.15":{"_id":"com.unity.purchasing@0.0.15","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.15","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"36430d4eb2a7de54c1950f3108ad0467b8e11cd7","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.15.tgz"}},"0.0.14":{"_id":"com.unity.purchasing@0.0.14","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.14","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"bbc336a66f8c88dacc9fbc9c046e169c6c3d4ccc","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.14.tgz"}},"0.0.13":{"_id":"com.unity.purchasing@0.0.13","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.13","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"53eb2a82f7377f3be616fe19fa1c54d62881f159","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.13.tgz"}},"0.0.12":{"_id":"com.unity.purchasing@0.0.12","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.12","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"27ccab792f6141604a52754c2ad5fd81a795ea6c","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.12.tgz"}},"0.0.11":{"_id":"com.unity.purchasing@0.0.11","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.11","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{},"dist":{"shasum":"75c08fc93979aed27e78b7a91815187d9ee254a3","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.11.tgz"}},"0.0.10":{"_id":"com.unity.purchasing@0.0.10","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.10","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.analytics":"*"},"dist":{"shasum":"4e63720848aca1f5f2a9be1ca972d2babeb3a81c","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.10.tgz"}},"0.0.9":{"_id":"com.unity.purchasing@0.0.9","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.9","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.analytics":"0.0.9"},"dist":{"shasum":"d6d83b382815279615bd627047fcfa4961d1530f","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.9.tgz"}},"0.0.8":{"_id":"com.unity.purchasing@0.0.8","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.8","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.analytics":"0.0.8"},"dist":{"shasum":"d4ad34fdd61e7c9fae9e8e898e4076e24d3a6135","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.8.tgz"}},"0.0.7":{"_id":"com.unity.purchasing@0.0.7","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.7","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.analytics":"0.0.7"},"dist":{"shasum":"ff5ed41432162cdba1ba90c086a820c161547d60","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.7.tgz"}},"0.0.6":{"_id":"com.unity.purchasing@0.0.6","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.6","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.analytics":"0.0.5"},"dist":{"shasum":"ba8421b30c41cf766541287e94063909dcd5a65c","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.6.tgz"}},"0.0.5":{"_id":"com.unity.purchasing@0.0.5","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.5","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.analytics":"0.0.4"},"dist":{"shasum":"571718288f427cb84af4d3d89b9c25aa779e26eb","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.5.tgz"}},"0.0.4":{"_id":"com.unity.purchasing@0.0.4","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.4","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{"com.unity.analytics":"0.0.3"},"dist":{"shasum":"00b83b99b0166f5f75a02b18047bd8ad148fa2d4","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.4.tgz"}},"0.0.3":{"_id":"com.unity.purchasing@0.0.3","unity":"2017.1","category":"AssetStore/Unity","publishConfig":{},"name":"com.unity.purchasing","version":"0.0.3","description":"Unity Purchasing","keywords":["purchasing","iap","unity"],"dependencies":{"UnityAnalytics":"0.0.2"},"dist":{"shasum":"8bd77b7df6f003a1600e2c55f25f9de94da2e15e","tarball":"https://download.packages.unity.com/com.unity.purchasing/-/com.unity.purchasing-0.0.3.tgz"}}},"time":{"5.3.0":"2026-05-04T17:41:51.548Z","4.15.1":"2026-04-21T15:38:39.867Z","5.2.1":"2026-03-28T01:36:49.779Z","4.15.0":"2026-03-25T20:53:28.574Z","5.2.0":"2026-03-13T20:56:20.976Z","5.2.0-pre.2":"2026-02-04T02:19:21.104Z","4.15.0-pre.2":"2026-02-04T02:19:17.610Z","5.2.0-pre.1":"2026-01-27T00:43:58.611Z","4.15.0-pre.1":"2026-01-27T00:16:21.870Z","4.14.2":"2026-01-05T21:00:09.976Z","4.14.1":"2025-12-24T01:05:34.527Z","5.1.2":"2025-12-24T01:04:41.487Z","5.1.1":"2025-12-19T22:52:36.349Z","5.1.0":"2025-12-13T01:02:41.824Z","5.0.4":"2025-12-04T18:45:32.999Z","5.0.3":"2025-11-27T15:31:07.561Z","4.14.0":"2025-11-13T20:24:58.616Z","4.13.2":"2025-10-16T22:15:47.769Z","5.0.2":"2025-10-14T15:44:32.612Z","4.13.1":"2025-10-03T17:38:53.742Z","5.0.1":"2025-08-22T19:20:16.678Z","5.0.0":"2025-08-07T13:17:48.696Z","5.0.0-pre.8":"2025-07-25T23:19:28.506Z","4.13.0":"2025-07-10T08:40:48.813Z","5.0.0-pre.7":"2025-06-17T00:02:43.814Z","5.0.0-pre.6":"2025-06-11T22:59:22.801Z","5.0.0-pre.5":"2025-03-10T13:46:14.406Z","5.0.0-pre.4":"2025-02-06T11:11:38.976Z","5.0.0-pre.3":"2024-12-13T18:39:50.992Z","5.0.0-pre.1":"2024-08-14T15:54:09.000Z","4.12.2":"2024-07-18T11:46:38.000Z","4.12.1":"2024-07-16T08:43:28.000Z","4.12.1-pre.4":"2024-07-02T22:52:40.000Z","4.12.1-pre.3":"2024-06-26T22:03:54.000Z","4.12.1-pre.1":"2024-06-12T09:41:52.000Z","4.12.0":"2024-06-05T16:10:38.000Z","4.11.0":"2024-03-11T15:21:02.000Z","4.10.0":"2023-10-13T09:12:37.000Z","4.9.4":"2023-08-11T20:53:04.000Z","4.9.3":"2023-06-14T11:29:13.000Z","4.9.2":"2023-06-07T08:49:12.000Z","4.8.0":"2023-04-14T10:27:28.000Z","4.7.0":"2023-03-10T15:32:07.000Z","4.6.0":"2023-02-13T08:05:14.000Z","4.5.2":"2022-12-10T14:36:14.000Z","4.5.1":"2022-10-27T08:49:39.000Z","4.5.0":"2022-10-03T13:09:42.000Z","4.4.1":"2022-08-22T09:12:30.000Z","4.4.0":"2022-07-28T14:26:29.000Z","4.3.0":"2022-07-18T14:59:06.000Z","4.2.1":"2022-06-22T17:45:45.000Z","4.1.5":"2022-05-23T10:50:47.000Z","4.2.0-pre.2":"2022-05-06T15:45:55.000Z","4.2.0-pre.1":"2022-05-02T18:03:08.000Z","4.1.4":"2022-04-12T22:32:11.000Z","4.1.3":"2022-02-08T15:17:49.000Z","4.1.2":"2021-11-29T18:14:36.000Z","4.1.1":"2021-11-02T10:57:34.000Z","4.1.0":"2021-10-15T16:12:36.000Z","4.0.3":"2021-08-24T15:42:23.000Z","4.0.0":"2021-07-28T11:37:38.000Z","3.2.3":"2021-07-14T13:28:08.000Z","3.2.2":"2021-06-04T17:06:14.000Z","3.2.1":"2021-05-19T18:43:27.000Z","3.1.0":"2021-04-19T21:50:08.000Z","3.0.2":"2021-04-01T15:37:26.000Z","3.0.1":"2021-03-09T01:41:13.000Z","3.0.0-pre.6":"2021-02-16T00:06:14.000Z","3.0.0-pre.5":"2021-02-12T16:44:26.000Z","2.2.2":"2021-01-22T19:50:44.000Z","2.2.1":"2020-11-20T18:54:34.000Z","2.2.0":"2020-11-19T15:50:29.000Z","3.0.0-pre.4":"2020-11-18T02:00:48.000Z","3.0.0-pre.3":"2020-11-14T00:54:07.000Z","2.1.1":"2020-09-15T14:41:21.000Z","2.1.0":"2020-08-18T19:55:57.000Z","2.0.6":"2019-04-03T12:13:03.000Z","2.0.5":"2019-04-03T12:13:01.000Z","2.0.3":"2019-04-03T12:12:59.000Z","2.0.1":"2019-04-03T12:12:56.000Z","2.0.0":"2019-04-03T12:12:54.000Z","0.0.19":"2019-04-03T12:12:51.000Z","0.0.18":"2019-04-03T12:12:49.000Z","0.0.17":"2019-04-03T12:12:46.000Z","0.0.16":"2019-04-03T12:12:44.000Z","0.0.15":"2019-04-03T12:12:41.000Z","0.0.14":"2019-04-03T12:12:38.000Z","0.0.13":"2019-04-03T12:12:36.000Z","0.0.12":"2019-04-03T12:12:34.000Z","0.0.11":"2019-04-03T12:12:31.000Z","0.0.10":"2019-04-03T12:12:28.000Z","0.0.9":"2019-04-03T12:12:26.000Z","0.0.8":"2019-04-03T12:12:23.000Z","0.0.7":"2019-04-03T12:12:21.000Z","0.0.6":"2019-04-03T12:12:18.000Z","0.0.5":"2019-04-03T12:12:16.000Z","0.0.4":"2019-04-03T12:12:14.000Z","0.0.3":"2019-04-03T12:12:11.000Z"},"dist-tags":{"latest":"5.3.0"},"etag":"\"b9367-BzOWXBb/9RfBFonLO7qTZ0RhQXc\""}