VpnHood.AppLib.Stores.AppStore.Native 8.0.7

dotnet add package VpnHood.AppLib.Stores.AppStore.Native --version 8.0.7
                    
NuGet\Install-Package VpnHood.AppLib.Stores.AppStore.Native -Version 8.0.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="VpnHood.AppLib.Stores.AppStore.Native" Version="8.0.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="VpnHood.AppLib.Stores.AppStore.Native" Version="8.0.7" />
                    
Directory.Packages.props
<PackageReference Include="VpnHood.AppLib.Stores.AppStore.Native" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add VpnHood.AppLib.Stores.AppStore.Native --version 8.0.7
                    
#r "nuget: VpnHood.AppLib.Stores.AppStore.Native, 8.0.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package VpnHood.AppLib.Stores.AppStore.Native@8.0.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=VpnHood.AppLib.Stores.AppStore.Native&version=8.0.7
                    
Install as a Cake Addin
#tool nuget:?package=VpnHood.AppLib.Stores.AppStore.Native&version=8.0.7
                    
Install as a Cake Tool

VpnHood.AppLib.Stores.AppStore.Native

Formerly VpnHood.AppLib.Ios.StoreKitNative: the id and the namespace changed in 2026-09 so that no VpnHood package id starts with an OS. The namespace is the package id.

StoreKit 2 for .NET iOS, self-contained in one NuGet:

  • VpnHoodStoreKit.xcframework — a tiny Swift facade exposing StoreKit 2's Swift-async API over a C ABI (@_cdecl functions + JSON strings + one completion callback). Prebuilt and committed, so consumers never need a Swift toolchain.
  • The C# binding — NativeStoreKitBridge (P/Invoke over __Internal), the IStoreKitBridge interface, and the StoreKitProduct / StoreKitPurchase DTOs.

The two sides are a matched pair: change the contract in both or not at all. That is why they live in the same repository and ship as one atomically versioned package.

C function StoreKit 2
vhsk_load_products Product.products(for:) + intro-offer eligibility
vhsk_purchase product.purchase(options: [.appAccountToken(uuid)])
vhsk_current_entitlement Transaction.currentEntitlements (newest)
vhsk_show_manage_subscriptions AppStore.showManageSubscriptions(in: scene)

Why a facade?

Microsoft.iOS does not bind StoreKit 2's Swift-async API. This package is the documented seam: plain C functions taking/returning JSON, completion via a C callback, statically linked into the app binary (DllImport "__Internal").

Usage

<PackageReference Include="VpnHood.AppLib.Stores.AppStore.Native" Version="x.y.z" />
IStoreKitBridge bridge = new NativeStoreKitBridge();
var products = await bridge.LoadProducts(["my.product.id"], cancellationToken);

The xcframework is embedded in the NuGet and linked into the main executable automatically; no NativeReference is needed in the consuming project. Requires net11.0-ios, minimum OS version 15.0.

Building

Day-to-day (C#-only changes) needs no Mac — the xcframework is committed.

Rebuilding the native facade (only when StoreKitBridge.swift changes) needs a Mac with Xcode 15+, or the build-xcframework GitHub workflow:

cd VpnHood.AppLib.Stores.AppStore.Native/swift && ./build-xcframework.sh

See swift/README.md for design notes.

Publishing

Every push to main bumps pub/PubVersion.json, packs, and publishes to nuget.org (.github/workflows/publish-nuget.yml). Consumers pin an exact version and upgrade deliberately — the package intentionally changes rarely.

License

LGPL-2.1

Product Compatible and additional computed target framework versions.
.NET net11.0-ios26.5 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net11.0-ios26.5

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on VpnHood.AppLib.Stores.AppStore.Native:

Package Downloads
VpnHood.AppLib.Stores.AppStore

VpnHood App Store billing (StoreKit 2 via the VpnHoodStoreKit Swift facade) and Sign in with Apple

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
8.0.7 104 9/23/2026