Skip to content

Commit 57ab494

Browse files
committed
14.3.8
1 parent 5016de2 commit 57ab494

File tree

2 files changed

+2
-176
lines changed

2 files changed

+2
-176
lines changed

CHANGELOG.md

Lines changed: 1 addition & 175 deletions
Original file line numberDiff line numberDiff line change
@@ -4,178 +4,4 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7-
## [14.3.6]
8-
9-
### Breaking: useIAP Hook
10-
11-
- JS: `useIAP` no longer returns `currentPurchase`, `currentPurchaseError`, or the associated clear helpers; consumers should rely on the `onPurchaseSuccess` / `onPurchaseError` callbacks moving forward.
12-
13-
## [14.3.5]
14-
15-
### Changed
16-
17-
- Android: Upgrade the fallback/config plugin to [openiap-google 1.1.10](https://github.com/hyodotdev/openiap-google/releases/tag/1.1.10) to stay current with the latest Billing integration guidance.
18-
- iOS: Bump the pod to [openiap 1.1.12](https://github.com/hyodotdev/openiap-apple/releases/tag/1.1.12) and adopt PascalCase error constants in the native layer for consistent casing across platforms.
19-
20-
### Fixed
21-
22-
- Android: Restore the explicit `Failed to initialize connection` error message when the billing client rejects `initConnection()` so logs stay actionable.
23-
- Android: Preserve receipt validation context for unexpected failures and avoid leaking purchase tokens in acknowledge/consume error payloads.
24-
25-
## [14.3.3]
26-
27-
### Changed
28-
29-
- JS: Streamline `requestPurchase` parameter handling, emit development warnings when the wrong request shape is supplied, and remove the legacy `request` fallback.
30-
- JS: Warn when the bridge encounters an unknown iOS product type to highlight schema mismatches sooner.
31-
- Build: Adopt [openiap-gql 1.0.0](https://github.com/hyodotdev/openiap-gql/releases/tag/1.0.0) for the transport layer to stay aligned with the GraphQL contract shipped across the ecosystem.
32-
33-
### Fixed
34-
35-
- JS: Normalize native error codes (including US/UK spelling) so cancellation flows and init‑connection guards behave like earlier releases.
36-
- Helpers: Align Active Subscription expiration fields with generated types (`null` instead of missing `Date`) to keep downstream consumers consistent.
37-
38-
## [14.3.2]
39-
40-
### Fixed
41-
42-
- JS: Guard Nitro HybridObject creation with try/catch and remove `isRuntimeAlive` import to stabilize CI/Jest and avoid "not a function" errors.
43-
44-
### Added
45-
46-
- Plugin (Expo): Optional iOS Podfile workaround to disable Folly coroutines via `"with-folly-no-couroutines": true`.
47-
48-
### Changed
49-
50-
- Docs: Restore installation note for the Folly workaround and remove a local Docusaurus type shim to avoid duplicate type declarations.
51-
52-
## [14.3.1]
53-
54-
### Added
55-
56-
- Examples: Add “Manage Subscriptions” buttons in SubscriptionFlow and AvailablePurchases (opens native subscription management via cross‑platform deeplink)
57-
- Examples: Allow tapping purchased items to open a details modal
58-
59-
### Changed
60-
61-
- Docs: Clarify event‑driven request model and why `request*` APIs do not resolve with results; add FAQ about transient iOS success→error timing and suggested debounce
62-
- Docs: Prefer `purchase.id` terminology in examples and guides; continue to recommend `purchaseToken` for server validation
63-
- Examples: Redact sensitive fields in logs and modals (no `transactionReceipt`/full `purchaseToken` shown)
64-
65-
### Fixed
66-
67-
- iOS: Sanitize purchase error payload so `purchaseToken` does not carry product identifiers in error events; keep internal deduplication based on SKU
68-
- Examples/Tests: Align transaction row with `purchase.id`; update tests accordingly
69-
- iOS: Fix crash on startup by lazily initializing the IAP module (Nitro HybridObject created on demand)
70-
71-
- Remove any references to `purchase.transactionReceipt`, `purchase.transactionReceiptIOS`, and `purchase.purchaseTokenAndroid`
72-
73-
## [14.3.0]
74-
75-
### Added
76-
77-
- JS: `getStorefront()` and `deepLinkToSubscriptions()` helpers for unified storefront lookup and opening native subscription management.
78-
79-
### Changed
80-
81-
- Android: Bump to OpenIAP Google 1.1.0 and align init behavior/field mapping with the OpenIAP spec.
82-
- Docs/Examples: Migrate guidance from `transactionReceipt` to the unified `purchaseToken`.
83-
- `purchase.purchaseToken` is now the recommended value for server validation on both platforms
84-
- iOS: `purchaseToken` contains the JWS (StoreKit 2). The App Receipt (`transactionReceipt`) remains available for legacy flows
85-
- Android: `transactionReceipt` is no longer populated; use `purchaseToken`
86-
87-
### Fixed
88-
89-
- Android: Address potential `init` race and improve error propagation for clearer failures.
90-
- iOS: Add temporary stubs to keep Nitro/iOS in sync with the JS spec (no runtime behavior change).
91-
92-
## [14.2.3]
93-
94-
### Fixed
95-
96-
- Android: add `offerTags` and fix `pricingPhases` in `subscriptionOfferDetails` (#2998)
97-
98-
### Chore
99-
100-
- iOS: enforce iOS 15+ in podspec
101-
- Lint: format files to sync with `.vscode` and Prettier
102-
- ESLint: avoid `.` import in config
103-
104-
## [14.2.2]
105-
106-
### Changed
107-
108-
- iOS: Upgrade OpenIAP to `~> 1.1.9` (StoreKit 2 stability and error model improvements)
109-
- iOS: Purchase flow is event‑only; add de‑duplication for error events to avoid double popups
110-
- Examples: Guard `finishTransaction` until connected and add short delayed retry
111-
- Examples: Normalize cancel handling with a single cancel popup
112-
113-
### Fixed
114-
115-
- iOS: Ensure synchronous errors during `requestPurchase` still surface via purchase error event (with lightweight de‑dup)
116-
- iOS: Include original error message in receipt failures for better diagnostics
117-
118-
## [14.2.0]
119-
120-
### Changed
121-
122-
- iOS: Make `initConnection()` idempotent and non‑blocking; propagate failures via `E_INIT_CONNECTION`
123-
- iOS: Bump OpenIAP to `~> 1.1.8`
124-
- Android: Ship consumer R8 keep rules for Nitro classes
125-
- CI: Use vendored Yarn to avoid Corepack issues
126-
- Examples: Stabilize purchase/subscription flows and tests
127-
128-
## [14.1.1]
129-
130-
### Fixed
131-
132-
- iOS: Fetch missing products from StoreKit when not cached in ProductStore
133-
134-
## [14.1.0]
135-
136-
### Changed
137-
138-
- **BREAKING**: Renamed all platform-specific fields to include platform suffix for clarity
139-
- iOS fields now end with `IOS` (e.g., `isFamilyShareable``isFamilyShareableIOS`)
140-
- Android fields now end with `Android` (e.g., `originalPrice``originalPriceAndroid`)
141-
- **DEPRECATED**: `autoRenewingAndroid` field - use common `isAutoRenewing` field instead
142-
- **BREAKING**: `showManageSubscriptionsIOS()` now returns `Promise<NitroPurchase[]>` instead of `Promise<boolean>`
143-
- **BREAKING**: `validateReceipt()` method signature has changed:
144-
- Now takes a single `NitroReceiptValidationParams` object instead of separate parameters
145-
- Returns platform-specific validation result types (`NitroReceiptValidationResultIOS` or `NitroReceiptValidationResultAndroid`)
146-
- Example: `validateReceipt({ sku, androidOptions: {...} })`
147-
- Added common purchase fields: `quantity`, `purchaseState`, `isAutoRenewing` for cross-platform consistency
148-
149-
### Added
150-
151-
- New `ProductTypeIOS` enum for detailed iOS product categorization
152-
- New `PurchaseState` enum for unified purchase status handling
153-
- `typeIOS` field for iOS-specific product type information
154-
155-
### Improved
156-
157-
- Type safety with clear platform-specific field naming
158-
- Cross-platform consistency with common fields
159-
- Better TypeScript intellisense and autocompletion
160-
- iOS: `isAutoRenewing` now uses renewal info when available for more accurate status
161-
- Android: Consistent use of `MICROS_PER_UNIT` constant for price calculations
162-
163-
## [14.0.1] - 2025-09-03
164-
165-
### Fixed
166-
167-
- Fixed npm publish to include required build files
168-
- Fixed CI test execution and improved test stability
169-
- Fixed example-expo Nitro module registration
170-
171-
## [14.0.0] - Previous Release
172-
173-
### Changed
174-
175-
- Migration to Nitro Modules for improved performance and type safety
176-
- Complete rewrite of native iOS and Android implementations
177-
- New TypeScript-first API design
178-
179-
---
180-
181-
For older versions, please refer to the releases page on GitHub.
7+
Check out [Releases](https://github.com/hyochan/react-native-iap/releases).

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-native-iap",
3-
"version": "14.3.7",
3+
"version": "14.3.8",
44
"description": "React Native In-App Purchases module for iOS and Android using Nitro",
55
"main": "./lib/module/index.js",
66
"types": "./lib/typescript/src/index.d.ts",

0 commit comments

Comments
 (0)