App Store RevenueCat Sync
SkillDev toolsApp Store Connect and RevenueCat subscription/IAP reconciliation with `asc` and RevenueCat MCP for catalog bootstrap, drift audits, deterministic product/entitlement/offering/package mapping, and no deletions.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the App Store RevenueCat Sync skill
What this skill tells your AI
The instructions your AI receives, as published by xopoko/build-swift-apps in skills/appstore-revenuecat-sync/SKILL.md and read by ahel’s review.
Start read-only, build a diff, then create/update only after explicit confirmation. Never delete resources in this workflow.
Preconditions
ascauth configured.- RevenueCat MCP configured/authenticated; write-enabled API v2 key for apply.
- Known
APP_ID, RevenueCatproject_id, target app type (app_storeormac_app_store), and bundle ID for create flows.
Canonical key: ASC productId == RevenueCat store_identifier. Never use display names as unique IDs.
Modes
- Audit: read ASC + RevenueCat, find missing resources and conflicts, present plan.
- Apply: after approval, ensure ASC items, RevenueCat app/products, entitlements/attachments, offerings/packages, then verify.
Read Sources
asc subscriptions groups list --app "APP_ID" --paginate --output json
asc iap list --app "APP_ID" --paginate --output json
asc subscriptions list --group-id "GROUP_ID" --paginate --output json
RevenueCat MCP tools: mcp_RC_get_project, mcp_RC_list_apps, mcp_RC_list_products, mcp_RC_list_entitlements, mcp_RC_list_offerings, mcp_RC_list_packages with pagination.
Type mapping:
- subscription ->
subscription CONSUMABLE->consumableNON_CONSUMABLE->non_consumableNON_RENEWING_SUBSCRIPTION->non_renewing_subscription
Entitlement defaults: one per subscription group, one per non-consumable, none for consumables unless requested.
Apply Order
- Create missing ASC resources, then re-read ASC to get canonical IDs:
asc subscriptions groups create --app "APP_ID" --reference-name "Premium" asc subscriptions create --group-id "GROUP_ID" --reference-name "Monthly" --product-id "com.example.premium.monthly" --subscription-period ONE_MONTH asc iap create --app "APP_ID" --type NON_CONSUMABLE --ref-name "Lifetime" --product-id "com.example.lifetime" - Ensure RevenueCat app/products with
mcp_RC_create_appandmcp_RC_create_product; setstore_identifierto ASCproductId. - Ensure entitlements and product attachments with
mcp_RC_create_entitlement,mcp_RC_attach_products_to_entitlement, and verify withmcp_RC_get_products_from_entitlement. - Optional offerings/packages:
mcp_RC_create_offering,mcp_RC_update_offering,mcp_RC_create_package,mcp_RC_attach_products_to_packageusingeligibility_criteria: "all".
Recommended package keys: weekly $rc_weekly, monthly $rc_monthly, two-month $rc_two_month, three-month $rc_three_month, six-month $rc_six_month, annual $rc_annual, lifetime $rc_lifetime, custom $rc_custom_<name>.
Agent Rules
- Always audit first, even when the user asks to apply.
- Ask before create/update operations.
- Match by
store_identifierfirst. - Use full pagination (
--paginate,starting_after). - Continue after per-item failures and report all together.
- RevenueCat MCP does not create ASC products; use
ascfor ASC resources first. - Watch for wrong RevenueCat project/app, wrong platform app, consumables attached to entitlements, skipped ASC re-read, and unverified package/offering attachments.
Output
Summarize ASC created/skipped/failed counts, RevenueCat created/skipped/failed counts, attachment counts, and actionable failures.
References: examples.md, references.md.
Signals
- GitHub stars
- 45
- Forks
- 4
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
appstore-revenuecat-sync- Source
- github.com/xopoko/build-swift-apps