Releases: needle-mirror/com.unity.purchasing
Releases · needle-mirror/com.unity.purchasing
Release list
5.4.2
[5.4.2] - 2026-07-24
Added
- Payment Providers -
IPaymentProvidersExtendedPurchaseService.SetCustomReferenceId(string?)— sets theCustomReferenceIdsent on new Payment Provider orders, echoed back on the order and its webhooks so you can reconcile IAP orders with your own internal system. - Payment Providers -
IPaymentProvidersExtendedPurchaseService.SetCustomMetadata(IReadOnlyDictionary<string, string>?)— sets an arbitrarystringkey/value dictionary sent asMetadataon new Payment Provider orders. - Payment Providers -
IPaymentProvidersOrderInfo— Payment-Provider-specific order details accessible viaorder.Info.PaymentProviders. ExposesCustomReferenceId(the value set viaSetCustomReferenceId) andMetadata(the value set viaSetCustomMetadata). - Authoring - Deploy auto-creates any webshop categories referenced by catalog items but missing from the categories document. Existing categories are left untouched.
Changed
- Package description - Corrected the setup instructions to point to
Services > In-App Purchasing > Configure, replacing the outdatedWindow > General > Servicespath. - Purchasing - Purchases with a store specific id not found in the current catalog will attempt to find the matching uSku in the Remote Catalog
- Purchase Options UI - Replace "Google Pay" and "Apple Pay" assets with appropriate "Google Play" and "In-App Purchase" assets.
Fixed
- GooglePlay - A failed purchases query (non-OK billing result) was indistinguishable from a user owning no purchases, so a lapsed subscription could not be reliably detected.
FetchPurchasesnow invokesOnPurchasesFetchFailedon failure with the billing response code instead ofOnPurchasesFetchedwith an empty list.CheckEntitlementnow reportsEntitlementStatus.Unknownon failure instead ofEntitlementStatus.NotEntitledwhen the purchases query fails.
- Apple (StoreKit 2) -
FetchPurchasesno longer reports expired subscriptions as pending purchases viaOnPurchasePending. - Apple (StoreKit 2) - Purchase failures were reported with the wrong
PurchaseFailureReason.Unknownerrors were surfaced as eitherValidationFailureorSignatureInvalid. - Apple (StoreKit 2) - Purchase failures that have a specific
PurchaseFailureReasonare now more accurately reported instead of beingUnknown. - Apple (StoreKit 2) - confirm success (
OnPurchaseConfirmed) is now reported only after the nativeTransaction.finishcall has completed, instead of unconditionally before it ran. A finish that does not find a matching unfinished transaction now reports aDuplicateTransactionconfirm failure, as the transaction has likely already been finished. - Apple - Added missing
tvOS 18.1availability check, causing'ExternalPurchaseCustomLink' is only available in tvOS 18.1 or newerbuild failure.
5.4.1
[5.4.1] - 2026-07-07
Changed
- Updated AI skill with D2C and migration patterns.
Fixed
- Apple - Resolved compiler error when building for macOS.
- Catalog Editor - Changed visibility on some generated classes from public to internal.
5.4.0
[5.4.0] - 2026-06-29
Added
- Direct to Consumer (D2C) payment providers - Integrate D2C payment providers with Unity In-App Purchasing to sell and fulfill products through off-platform transactions.
- Unity Webshops - Launch a branded web storefront for your In-App Purchasing catalog from the Unity Dashboard, with theming, hosting, and payments handled for you.
- Remote Catalog - Define your product catalog and upload it to the Remote Catalog service.
- Purchase Options UI - Start a purchase from your application and let players choose how to pay with the Purchase Options UI.
5.3.1
[5.3.1] - 2026-05-27
Added
- Xbox - Added purchase verification support through the Microsoft Store Collections service. See In-app purchases for Xbox games for more details.
Fixed
- Fixed compile errors caused by naming collisions when a project imports a third-party package that exposes a top-level
UnityUtilnamespace. - Google - Fixed a race condition where purchases could be silently lost when
FetchPurchasescompleted beforeFetchProductspopulated the product details cache. Missing product details are now pre-fetched before purchases are built. - Google - Fixed a
NullReferenceExceptionwhen constructing aGooglePurchasefor an owned purchase whoseAccountIdentifiersare null (test purchases or apps that don't callSetObfuscatedAccountId). - Google - Fixed a
NullReferenceExceptioninProductDetailsConverter.BuildProductDescriptionwhen a product has no subscription offer details (returned as null by Google Play for non-subscription products). - Google - Fixed a
NullReferenceExceptionwherePurchasereferences received fromQueryPurchasesAsynccould become invalid across an async boundary. The references are now cloned to long-lived global JNI references inside the billing-client callback.
5.3.0
[5.3.0] - 2026-05-04
Added
- Added support for disabled domain reload in the Editor.
- Xbox - Added integration with Xbox Store for Xbox Series, Xbox One, and Windows. Get started with Unity GDK integration.
- Project Settings allow you to access IAP AI skill with migration capabilities from v4 to v5
Fixed
- Apple - Fixed Swift 6 strict concurrency warnings that caused build failures when
SWIFT_STRICT_CONCURRENCYis set tocomplete. - Apple - Fixed
RestorePurchases/FetchPurchasescallback never firing on StoreKit 1 when the user has no purchase history. - Apple - Fixed visionOS incorrectly defaulting to StoreKit 1 instead of StoreKit 2.
- To continue using the previous behaviour, set
StoreKitSelector.forceStoreKit1totrueon visionOS.
- To continue using the previous behaviour, set
- Fixed
IndexOutOfRangeExceptionhappening in the catalog editor when exporting with an empty catalog item.
4.15.1
[4.15.1] - 2026-04-20
Fixed
- Apple - Restored visionOS platform support in iOS plugin meta files, which was accidentally removed in 4.13.0.
5.2.1
[5.2.1] - 2026-03-27
Fixed
- Apple - Fixed an issue where
OnPurchaseFailedwould not trigger when re-purchasing non-consumables. - Apple - Fixed tvOS build failure caused by missing
tvOS 15.0availability on theSKPaymentTransactionObserverextension inPurchaseUseCase.swift. - Apple - Fixed
GetProductDetailsreturning an empty dictionary. - Google - Fixed an issue where
OnPurchasesFetchFailedcould be triggered when foregrounding the application while the store connection wasn't established. - Updated description of
OnPurchaseDeferredinIPurchaseServiceandStoreController.
4.15.0
5.2.0
[5.2.0] - 2026-02-23
Added
- Added
OnStoreConnectedcallback to complement the existingOnStoreDisconnectedcallback, to provide symmetrical connection state handling.
Fixed
- Apple - Fixed
StorefrontResponsenot being found on VisionOS. - Apple -
IPurchaseService.ProcessPendingOrdersOnPurchasesFetchedapplies toAppleAppStoreandMacAppStore.- This resolves a issue on iOS 26.2+, where
OnPurchasePendingwas not invoked for existing pending orders during startup. - Setting
IPurchaseService.ProcessPendingOrdersOnPurchasesFetchedtofalseon Apple platforms may result in missingOnPurchasePendingevents for iOS versions 26.2+.
- This resolves a issue on iOS 26.2+, where
- Apple - Fixed
InvalidPublicKeyExceptionexception being thrown when creating aCrossPlatformValidator.- If you experienced this issue, regenerate your
AppleTangle.csvia Services > In-app Purchasing > Configure, and selectingObfuscate Apple License Key.
- If you experienced this issue, regenerate your
- Google - Fixed purchases made while the application is backgrounded not invoking the
OnPurchasePendingwhen foregrounding the application. - Fixed
DuplicatedTransactionhappening on first time purchasing Consumables/Non-Consumables.
5.2.0-pre.2
[5.2.0-pre.2] - 2026-02-03
- GooglePlay - Fixed an exception that can occur when calling
ExternalBillingProgramClient.CreateBillingProgramReportingDetailsAsync