For the complete documentation index, see llms.txt. This page is also available as Markdown.

IAP SKILL

The first skill introduced in Launch on ONEstore with AI. This page covers actual usage only.

IAP SKILL is a tool that lets an AI coding agent integrate the ONE store in-app purchase (IAP) SDK for you. Just install it, then tell your usual AI tool what you want in plain language — that's it.

Skill
When to use

onestore-iap

To add ONE Store in-app purchase to an app that doesn't have billing yet

onestore-iap-migrate

To add ONE Store billing to an app that already uses Google Play Billing

Install

1

Before you start

You'll need an existing Android project and a working build setup (Android Studio, etc.) — a vibe-coded project is fine too. The install script is bash, so macOS/Linux works out of the box; on Windows you'll need WSL or Git Bash.

2

Install it

Repo: github.com/ONE-store/onestore_iap_skills

Copy the text below and paste it into your agent.

Clone https://github.com/ONE-store/onestore_iap_skills.git into a temp folder, then run the
install script inside it against [my Android project path] to install IAP SKILL.
Let me know the result in one line when done.

bash

git clone https://github.com/ONE-store/onestore_iap_skills.git
cd onestore_iap_skills
./install.sh <my Android project path>
3

Confirm it's installed

Ask "check the ONE store IAP integration status." If you get a status table back, you're set.

Where it runs

Supported tools

Claude Code

Cursor

GitHub Copilot (VS Code)

Gemini CLI

OpenAI Codex

Grok Build

What it can do

Task
Nature
By hand
With this skill

Diagnose status

🟢 Read-only

Not sure where to start, so you read through the whole doc

Reads your project and shows a table plus what to do next (each finding links to the relevant file)

SDK integration

🟡 Modifies files

Wiring the manifest (app config file) and source code by hand

Wires it up in the same order, and asks first if placement is ambiguous

Fill in product values

🟡 Modifies files

Mixing up consumable vs. non-consumable fails silently, discovered as a bug later

Asks directly — "is this a consumable product?" — so nothing gets mixed up

Verification screen

🟡 Creates files

You build a test screen yourself

Builds a tappable test screen for you (Compose projects only)

Diagnose errors

🟢 Read-only

Search the error code and cross-reference docs, guessing

Explains the cause, how to reproduce it, the fix, and reference docs

Pre-release check

🟢 Read-only

Go through a checklist by hand, top to bottom

Surfaces blockers first, and collapses everything that passed into one line

Try it — natural language prompts

Copy these straight into your agent.

Prompt
Result

What can the ONE store payment skill do?

Lays out everything this skill can help with

What should I do next?

Re-checks current status and tells you what to ask for next

Check my ONE store IAP integration status

Shows what's done, what's left, and what to do next

Integrate the ONE store IAP SDK

Walks through dependencies, manifest setup, and payment code in order

Fill in the values for [product ID], checking whether it's consumable

Asks about anything ambiguous while filling in the values

Add a screen I can use to test payments

Builds a test screen for login, purchase, and consume/acknowledge

Check why I'm getting this error (paste the error log)

For example, if you see responseCode 7, it means "already owned." For unconsumed products it explains the cause and fix; for non-consumables or subscriptions, it tells you that's expected and there's nothing to fix

Check the payment integration before I release

Surfaces only what could block release; everything else is marked as passed

My app uses Google Play Billing — migrate it to ONEstore billing

Diagnoses your existing billing code, extracts a product table for your confirmation, then wires ONEstore billing into your existing entitlement logic

FAQ

Is there anything this skill can't do?
  • Gradle sync and building: after dependencies are added, you'll need to sync yourself.

  • Real payment testing: sandbox testing and registering test accounts happen in the developer console.

  • Server-side receipt verification: server-to-server verification isn't something an app can do. If your setup delivers items from a server, the skill only wires up the connection point — the purchase signature itself is already verified by the SDK once you've supplied the public key.

  • Turning the verification screen into a production screen: it's a verification screen only, and stays that way.

  • Changing build settings: compileSdk, minSdk, and your Java target are left untouched.

What version is this built against?

Built against sdk-iap 21.04.00 (and sdk-licensing 2.2.1 for paid apps). Verified against the public dev guide and sample app, and tested end-to-end on a real device — purchase, consume, acknowledge, and subscription. Once integrated, com.onestorecorp.sdk:sdk-iap:21.04.00 gets added to build.gradle.kts.

What's coming next?

Automatic migration from PBL to ONE store payment code, onestore CLI, then engine support for Unity, Unreal, and Flutter — in that order.

Is the license key handled safely?

Yes. The license public key is never left as plaintext in source — it's obfuscated, and the skill verifies the round trip against the original before confirming.

What should I have ready before filling in product values?

You'll be asked "is this product consumable?" — answer carefully, since a wrong answer fails silently with no error. There are 3 values you'll need ready.

Value
Where to find it

License public key

Developer Console → General Info → License Management

Product ID list

Developer Console → the In-App IDs registered under In-App Info

Which ones are consumable

Your app's design — which products need to be purchasable again

Even without these, code placement proceeds, and the value fields are just left blank.

How does the verification screen get wired into my app?

You'll be asked whether to wire it in first. If you say yes, you'll get three options that avoid disturbing your existing entry screen — a separate screen, overlaying the current screen, or not wiring it in at all.

My product list comes back empty

Product IDs need to already be registered as real products in the developer console — if they're not registered yet, the lookup returns an empty list. Register them in the developer console first, following the product registration guide.

Are there install options?

Yes, there are 6.

Option
What it does

--dry-run

Shows what would be copied where, without changing anything

--user

Installs to your home directory so it's available in every project

--all

Also installs to .cursor/, .github/, .gemini/, .codex/, and .junie/

--pull

Pulls the latest version before installing

--force

Overwrites your install even if you've modified it

--offline

Skips the remote check

You can also skip the script and copy the skills/onestore-iap folder straight into your tool's skill path.

I'd rather integrate manually, without the skill

The existing payment integration guide works fine on its own. This skill is built off the same public guide, so you can switch to manual work partway through and pick up right where you left off.

I reinstalled and nothing changed

Files you've modified yourself are never overwritten — you'll be told which ones. Merge them by hand and run it again, or pass --force if you really want to overwrite them.

My agent isn't using the skill

Ask "list the skills available right now" first.

  • Not in the list — that's an install path issue. Double-check your tool reads from the right path, then restart your session after installing.

  • In the list but not being used — try mentioning "ONE store" or "in-app purchase" in your request. If it still tries to write the code itself, add "use the skill for this."

My build is failing

This is usually a Java (JDK) setup issue, not a payment-code problem — especially if you see Unsupported class file major version, Android Gradle plugin requires Java …, or JAVA_HOME is not set. Paste the full error into your agent and it'll walk you through the cause and the fix.

Where can I learn more?

Last updated