- Provide a reproducible iOS NuGet package for StoreKit 2 interop.
- Keep the managed API minimal and stable.
- Never commit secrets or credentials.
masteris the only long-lived branch. Use short-lived feature branches and pull requests.- Never implement work directly on
release/*, rewrite published history, force-push shared branches, or move an existing tag. - Both
vX.Y.Z-rc.NandvX.Y.Zmust target commits reachable fromorigin/master. - A versionless manual workflow run is a GitHub Packages preview. A manual NuGet.org version publish
must run from
masterand must use an unused version. - Historical packaging requires an explicit
source_refreachable fromorigin/master. - Follow
Docs/Release.md; the workflow and validation scripts are deterministic and take precedence if prose disagrees.
- Public OSS repo with generic docs and examples.
- NuGet ships the native interop wrapper
xcframeworkand injects it withNativeReference. - Consuming apps must not fetch native dependencies during build.
src/Kapusch.StoreKit2ApisForiOSComponents/- managed API andbuildTransitivesrc/Kapusch.StoreKit2ApisForiOSComponents/Native/iOS/- Swift wrapper and scriptsDocs/- integration and maintenance docs
- Never log purchase tokens or signed payloads in clear text.
- Keep changes deterministic and reproducible in CI.
- Preserve all historical tags and package provenance when retiring branches.