Releases: needle-mirror/com.unity.purchasing
Releases Β· needle-mirror/com.unity.purchasing
5.0.0-pre.4
[5.0.0-pre.4] - 2025-02-04
Changed
- GooglePlay - Billing Library updated to 7.1.1 (was previously 6.2.1). No new feature support was added.
- GooglePlay -
GooglePlayProrationMode
has been replaced withGooglePlayReplacementMode
to match the Google Play Billing Library.GooglePlayReplacementMode.Deferred
has been changed from4
to6
to match the Google Play Billing Library. This change was also applied toGooglePlayProrationMode.Deferred
.GooglePlayProrationMode
has been marked[Obsolete]
Fixed
- Apple - Added missing callbacks for StoreKit 2.
- Codeless - Fixed an issue where
PayoutDefinition
defined in the IAP Catalog was not being used. - IAP Catalog - Fixed an issue where
CatalogPopupProductType
was on the wrong namespace (Editor
instead ofUnityEditor.Purchasing
). - IAP Catalog - Fixed an issue where the
Unknown
product type was available in the catalog.
5.0.0-pre.3
[5.0.0-pre.3] - 2024-08-21
Added
- Apple - Updated to StoreKit 2.
- All features previously in StoreKit 1 are still supported.
- New features from StoreKit 2 will be supported in a later release.
- StoreKit 1 is no longer supported and iOS devices will require iOS 15.0 or later.
- 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.
- Apple - Updated PrivacyInfo.xcprivacy to reflect that IAP no longer uses required reason API.
Changed
- Apple - CrossPlatformValidator is no longer used for receipt validation for Apple since StoreKit2 does it.
- Apple - Receipt obfuscation for Apple has been removed.
- Apple -
Product.appleProductIsRestored
is now obsolete since it's no longer used with StoreKit2.
Fixed
- Fixed Non-Consumables being treated as Consumables (introduced by Unity IAP 5.0.0-pre.1)
5.0.0-pre.1
[5.0.0-pre.1] - 2024-07-26
In-app purchasing 5.0.0 is a major overhaul of this package.
Consult the Coded IAP 5.0.0 Sample
for a complete example of how to use this new version.
Added
- Retry Policies:
- Add
StoreService.Connect
method which initiates the connection to the store. - Add
IRetryPolicy
interface that can be implemented to provide a custom retry
policy.IRetryPolicy.ShouldRetry(IRetryPolicyInformation)
determines if the request should retried and can wait
before retrying. - Add basic implementations of the
IRetryPolicy
such asExponentialRetryPolicy
,MaximumNumberOfAttemptsRetryPolicy
,NoRetriesPolicy
andTimeLimitRetryPolicy
.
- Add
- New callbacks on IAP Button and IAP Listener for all the events
Fixed:
- Apple - Fixed
SubscriptionPeriodUnit
to return the correct values: Week = 1, Month = 2 (previously Month = 1, Week = 2) - Apple - Fixed isFamilyShareable on tvOS to be only available on supported versions (14.0 and above).
- Apple - Error codes when a purchase fails now always returns the code from Apple instead of defaulting to
SKErrorUnknown
.
Changed
- IAP logs are prefixed with
InAppPurchasing
. - IAP Catalog
- Removed
Apple Configuration
,Google Configuration
andCatalog Export
from IAP Catalog since this is no longer supported by the stores. - Moved the Google Configuration
Price
underDescriptions
which is displayed when products havn't been retrieved yet or in Fake Store
- Removed
- Assemblies starting with
UnityEngine.Purchasing
have been renamed toUnity.Purchasing
Removed
- Support for Windows Store (Universal Windows Platform)
- Support for the Unity 2020 Editor and Engine. Please upgrade to Unity 2021.3 or later.
- 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.
- Support for Legacy Analytics (com.unity.modules.unityanalytics). Please use Unity Game Services Analytics instead (com.unity.services.analytics).
4.12.2
[4.12.2] - 2024-07-17
Fixed
- GooglePlay - Fixed
Product.receipt
'sprice_amount_micros
returning a string instead of a long.
4.12.1
[4.12.1] - 2024-07-11
Changed
- Apple - The change where
Product.appleProductIsRestored
was no longer sent toProcessPurchase
has been reverted.
Fixed
- GooglePlay - Fixed an issue where a warning was output in the logs when retrieving purchases.
4.12.1-pre.4
[4.12.1-pre.4] - 2024-07-02
Fixed
- GooglePlay - Fixed an issue that happens on Windows when disabling the IAP Dependencies.
- GooglePlay - Fixed an
InvalidOperationException
that could occur when obtaining purchases. (Since Unity IAP 4.6.0)
4.12.1-pre.3
[4.12.1-pre.3] - 2024-06-26
Changed
- Apple - Retrieved purchases from the store will be considered as
appleProductIsRestored
. - Apple -
Product.appleProductIsRestored
will no longer be sent toProcessPurchase
since they have already been processed. - Apple - The changes above will improve Analytics data by avoiding duplicate purchase events.
Fixed
- GooglePlay - Fixed an issue where dependencies were added after dependency resolution happened resulting in an error.
- GooglePlay - Fixed
Product.receipt
'sprice_amount_micros
returning the price instead of the price in micro-units. - GooglePlay - Fixed
NullReferenceException
occurring when retrieving products on Unity Engine 2021.2 and earlier. - GooglePlay - Fixed
OnProductReceived
callback not being fired with an invalid ProductID.
4.12.1-pre.1
[4.12.1-pre.1] - 2024-06-06
Fixed
- GooglePlay - Fixed errors related to
CloneReference
on Unity Engine 2021.1.
Removed
- Removed unnecessary Android dependency,
androidx.activity:activity-compose:1.3.1
, which could cause conflicts with other plugins.
4.12.0
[4.12.0] - 2024-06-04
Added
- GooglePlay -
IGooglePlayStoreExtensions.GetObfuscatedAccountId(Product product)
has been added to obtain the obfuscated account ID of the purchase set withIGooglePlayConfiguration.SetObfuscatedAccountId
. - GooglePlay -
IGooglePlayStoreExtensions.GetObfuscatedProfileId(Product product)
has been added to obtain the obfuscated profile ID of the purchase set withIGooglePlayConfiguration.SetObfuscatedProfileId
. - Apple - Added visionOS support
Changed
4.11.0
[4.11.0] - 2024-03-06
Added
- GooglePlay -
IGooglePlayConfiguration.SetMaxConnectionAttempts(int maxConnectionAttempts)
has been added to specify the max connection attempts to the Google Play Store. - 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.
- Added
ConfigurationBuilder.logUnavailableProducts
to specify if unavailable products should be logged.
Changed
- 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. - Apple - The log when retrieving products (SKProductsResponse) now also contains the invalid products count.
- Improved
IStoreListener.OnInitializeFailed
forInitializationFailureReason.NoProductsAvailable
by adding a message to clarify whether the store returned products or not.
Fixed
- GooglePlay - Fixed AndroidJavaObject not being disposed causing a global reference table overflow in an edge case.
- GooglePlay - Fixed bug causing BillingClient duplication resulting in ANR.
- Apple - Fixed isFamilyShareable on tvOS to be only available on supported versions (14.0 and above).
- Apple - Error codes when a purchase fails now always returns the code from Apple instead of defaulting to
SKErrorUnknown
. - Fixed Analytics' transactionServer being null.