Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
9df5202
feat(gql): align platform purchase API schema
hyochan May 16, 2026
b1ffaaa
chore(gql): sync generated platform types
hyochan May 16, 2026
01136dc
feat(apple): align native purchase APIs
hyochan May 16, 2026
13c98e0
feat(google): align billing API handling
hyochan May 16, 2026
89f7a20
feat(sdk): align framework purchase APIs
hyochan May 16, 2026
b9f8a70
fix(kit): harden validation and sync flows
hyochan May 16, 2026
b1e98d5
docs(openiap): refresh API and setup guides
hyochan May 16, 2026
b882701
docs(knowledge): update OpenIAP workflow guidance
hyochan May 16, 2026
ec8acca
fix(mcp): redact sensitive Kit responses
hyochan May 16, 2026
1881a75
chore(ci): update release automation scripts
hyochan May 16, 2026
2a11074
fix(ci): resolve PR check failures
hyochan May 16, 2026
7d3eba3
fix(apple): set xcframework platforms
hyochan May 16, 2026
fe48139
fix(flutter): address billing review feedback
hyochan May 16, 2026
6a43dc1
fix(ci): address release review findings
hyochan May 16, 2026
67e5d6f
fix(debug): show tokens in examples
hyochan May 16, 2026
2ed2865
chore(react-native-iap): remove expo example
hyochan May 16, 2026
2e31310
fix(examples): show offer tokens in debug output
hyochan May 16, 2026
a943b7b
fix(debug): remove redact helpers
hyochan May 16, 2026
d8c1aba
fix(flutter): remove standalone amazon support
hyochan May 16, 2026
53a6943
docs(releases): add sdk minor release note
hyochan May 16, 2026
07d8677
fix(sdk): address review serialization feedback
hyochan May 16, 2026
adc4152
fix(sdk): trim internal token logs
hyochan May 16, 2026
42ff05a
fix(android): relax sdk version parsing
hyochan May 16, 2026
812d42c
fix(sdk): address review bridge threading
hyochan May 16, 2026
3a487b9
fix(kmp): bridge nested objc payloads
hyochan May 16, 2026
7d27024
fix(maui): preserve nulls in ios json bridge
hyochan May 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 4 additions & 5 deletions .github/workflows/ci-expo-iap.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:

- uses: oven-sh/setup-bun@v2
with:
bun-version: "1.1.38"
bun-version: 1.3.13

- uses: actions/cache@v5
with:
Expand All @@ -41,7 +41,7 @@ jobs:
restore-keys: ${{ runner.os }}-bun-

- name: Install dependencies
run: bun install
run: bun install --frozen-lockfile

- name: Type check
run: bun run lint:tsc
Expand All @@ -57,7 +57,7 @@ jobs:

- uses: oven-sh/setup-bun@v2
with:
bun-version: "1.1.38"
bun-version: 1.3.13

- uses: actions/cache@v5
with:
Expand All @@ -66,7 +66,7 @@ jobs:
restore-keys: ${{ runner.os }}-bun-

- name: Install dependencies
run: bun install
run: bun install --frozen-lockfile

- name: Build plugin
run: bun run build:plugin
Expand All @@ -76,4 +76,3 @@ jobs:

- name: Test plugin
run: bun run test:plugin

2 changes: 1 addition & 1 deletion .github/workflows/ci-flutter-iap.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
- uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: "3.x"
flutter-version: "3.41.9"
cache: true

- name: Install dependencies
Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/ci-maui-iap.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,11 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
XCODE_VERSION: 16.4
XCODEGEN_VERSION: 2.45.4
XCODEGEN_SHA256: 090ec29491aad50aec10631bf6e62253fed733c50f3aab0f5ffc86bc170bdbef

jobs:
compile-check:
name: Compile Check (net9.0 shared)
Expand Down Expand Up @@ -115,13 +120,18 @@ jobs:

ios-binding:
name: iOS binding (net9.0-ios + maccatalyst)
runs-on: macos-latest
runs-on: macos-15
timeout-minutes: 45
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1

- name: Set up Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ env.XCODE_VERSION }}

- name: Setup .NET 9 SDK
uses: actions/setup-dotnet@v5
with:
Expand All @@ -131,7 +141,7 @@ jobs:
run: dotnet workload install maui --skip-sign-check

- name: Install xcodegen
run: brew install xcodegen
run: bash scripts/install-xcodegen.sh "$XCODEGEN_VERSION"

# The iOS binding csproj consumes packages/apple/.build/xcframework/OpenIAP.xcframework.
# Build it via the wrapper Xcode project produced from packages/apple/wrapper/project.yml.
Expand Down
20 changes: 14 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ on:
branches:
- main

env:
XCODE_VERSION: 16.4

jobs:
# Detect which packages have changes
changes:
Expand Down Expand Up @@ -98,7 +101,7 @@ jobs:
run: |
# Retry bun install up to 3 times to handle transient registry errors
for i in 1 2 3; do
bun install && break
bun install --frozen-lockfile && break
[ $i -eq 3 ] && exit 1
echo "Attempt $i failed. Retrying..."
sleep 5
Expand Down Expand Up @@ -169,7 +172,7 @@ jobs:
run: |
# Retry bun install up to 3 times to handle transient registry errors
for i in 1 2 3; do
bun install && break
bun install --frozen-lockfile && break
[ $i -eq 3 ] && exit 1
echo "Attempt $i failed. Retrying..."
sleep 5
Expand Down Expand Up @@ -197,13 +200,18 @@ jobs:

test-ios:
name: Test iOS
runs-on: macos-latest
runs-on: macos-15
needs: changes
if: needs.changes.outputs.ios == 'true'
steps:
- name: Checkout
uses: actions/checkout@v6

- name: Set up Xcode
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: ${{ env.XCODE_VERSION }}

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
Expand All @@ -213,7 +221,7 @@ jobs:
run: |
# Retry bun install up to 3 times to handle transient registry errors
for i in 1 2 3; do
bun install && break
bun install --frozen-lockfile && break
[ $i -eq 3 ] && exit 1
echo "Attempt $i failed. Retrying..."
sleep 5
Expand Down Expand Up @@ -249,7 +257,7 @@ jobs:
run: |
# Retry bun install up to 3 times to handle transient registry errors
for i in 1 2 3; do
bun install && break
bun install --frozen-lockfile && break
[ $i -eq 3 ] && exit 1
echo "Attempt $i failed. Retrying..."
sleep 5
Expand Down Expand Up @@ -290,7 +298,7 @@ jobs:
run: |
# Retry bun install up to 3 times to handle transient registry errors
for i in 1 2 3; do
bun install && break
bun install --frozen-lockfile && break
[ $i -eq 3 ] && exit 1
echo "Attempt $i failed. Retrying..."
sleep 5
Expand Down
28 changes: 26 additions & 2 deletions .github/workflows/publish-flutter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@ on:

permissions:
contents: write
id-token: write

jobs:
publish:
permissions:
contents: write
id-token: write
runs-on: ubuntu-latest
defaults:
run:
Expand All @@ -24,12 +26,34 @@ jobs:
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: "3.x"
flutter-version: "3.41.9"

- name: Install dependencies
run: flutter pub get

- name: Check if pub.dev package already published
id: check_pub
run: |
VERSION=$(awk '/^version:/{print $2; exit}' pubspec.yaml)
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" "https://pub.dev/api/packages/flutter_inapp_purchase/versions/$VERSION" || true)
HTTP_STATUS="${HTTP_STATUS:-000}"
case "$HTTP_STATUS" in
200)
echo "exists=true" >> "$GITHUB_OUTPUT"
echo "⚠️ flutter_inapp_purchase $VERSION already exists on pub.dev"
;;
404)
echo "exists=false" >> "$GITHUB_OUTPUT"
echo "✓ flutter_inapp_purchase $VERSION does not exist, will publish"
;;
*)
echo "❌ Unable to verify flutter_inapp_purchase $VERSION on pub.dev (HTTP $HTTP_STATUS)"
exit 1
;;
esac

- name: Publish to pub.dev
if: steps.check_pub.outputs.exists == 'false'
run: |
OIDC_TOKEN=$(curl -sLS "${ACTIONS_ID_TOKEN_REQUEST_URL}&audience=https://pub.dev" \
-H "User-Agent: actions/oidc-client" \
Expand Down
Loading
Loading