Bundles & Licensing
Four ways one piece of software earns more than one price tag.
When This Skill Activates
- A portfolio developer asks how apps can sell each other ("bundle my apps?")
- Deciding whether to enable Family Sharing on a subscription or purchase
- Exploring partnerships with complementary indie apps
- Schools, clinics, or businesses keep asking "how do we buy 30 seats?"
- The store-growth audit flags P8.5, P8.6, or P8.7
1. Own-app bundles (available now)
App bundles group up to 10 of your own paid apps — or apps sharing a subscription — at a bundle
price, with Complete My Bundle crediting what a user already paid.
- ✅ Portfolio play: your catalog cross-sells itself on every member app's product page — a
discovery surface, not just a discount (pairs with the checkbox-storefront and portfolio
tactics in
app-store/marketing-strategy).
- ✅ Price the bundle at "second app ~half off, third+ nearly free" — the goal is basket size
and page presence, not margin per unit.
- ❌ Bundling apps with no shared audience; the bundle card confuses both product pages.
- Mechanics: paid apps only (or one subscription spanning the bundle); free apps can't bundle.
2. Family Sharing (available now — chronically under-enabled)
A checkbox per IAP/subscription in ASC, plus StoreKit handling for shared entitlements. One
purchase covers up to 5 additional family members — 6 entitlements, "6 for the price of 1".
- ✅ Enable for subscriptions whose job is shareable (utilities, education, health, home) —
"the whole family for one price" beats a 6× cheaper feel at maybe 1.5× usage cost, and it's a
paywall differentiator against non-sharing competitors.
- ✅ Drive paywall copy off
isFamilyShareable rather than hardcoding "share with your family".
- ✅ Distinguish
ownershipType — PURCHASED vs FAMILY_PURCHASED — to tailor onboarding;
the family member never saw your paywall or purchase flow.
- ✅ Family entitlements arrive outside any purchase flow, and after a deliberate delay (the
purchaser gets a window to disable sharing first) — listen on
Transaction.updates, and
check entitlement before merchandising (a family member may already be covered).
- ✅ Handle
revocationDate + the REVOKE server notification by re-deriving entitlements from
the full transaction history; test the revoked-from-family path.
- ❌ Enabling it on a per-seat B2B-ish product where sharing cannibalizes real seats — that's
what volume licensing (below) is for.
- One-way door: enabling takes effect within hours for new and existing customers and is
irreversible — turning it off only affects new purchases.
3. Cross-developer bundles & suites
Combined subscriptions spanning apps from different developers — the "indie suite" model
(several complementary tools, one subscription).
- The unlock: each partner's install base becomes the others' warm audience — distribution
cheaper than any paid channel.
- ✅ Partner selection: same buyer, adjacent jobs, no feature overlap (writing tool + reference
manager + focus timer, not three writing tools). Draft revenue-share on attribution of the
acquiring app, not equal splits.
- ✅ Verify current ASC mechanics before promising a ship date — cross-developer suites are a
recent capability and terms/tooling are still settling; the fallback is coordinated own-app
pricing + mutual offer codes (
generators/offer-codes-setup).
- ❌ Partnering with an app whose rating or privacy posture you wouldn't put your name on — a
suite shares reputational blast radius (run
app-store/originality-check thinking on partners).
4. Group Purchases & Volume Purchasing — institutional sales
Live for all auto-renewable subscriptions using StoreKit 2 (StoreKit 2 required). ON by default
for most new and existing StoreKit 2 subscriptions — but Family Sharing-enabled subscriptions
are opted OUT by default. Configure per subscription in ASC.
Two sale paths, same seat pool:
- In-app group purchases — a customer buys N seats, shares an invite link, and accepters are
auto-assigned to seats.
- Volume purchasing through Apple Business Manager / Apple School Manager — the
institutional channel for schools, clinics, and businesses.
Mechanics:
- Volume pricing = up to 5 price bands, with full control of seat thresholds and each band's
price. The default is every seat at the current price — no discount exists until you configure
bands (e.g., $19.99 → $13.99 at 21–40 seats → $10.99 at 41+; a 50-seat purchase then averages
~20% off).
- ✅ Prefer the built-in seat management (invites, acceptance tracking, seat lifecycle) unless
you already run member management — then use the App Store Server API group endpoints instead.
- ✅ Merchandise the group value in-app — buyers won't discover multi-seat pricing on their own.
- ✅ Education/health apps: this often outearns consumer conversion optimization by an order of
magnitude — one district buys more seats than a year of paywall A/B tests adds.
- ❌ Building custom seat management UI before validating a single institutional buyer exists —
the built-in flow covers the first sale.
- Custom Apps via Apple Business Manager remain the path for bespoke B2B distribution; Group
Purchases brings multi-seat to the mainstream store — different tools, same buyer.
- Reference: the WWDC26 session on group purchases and volume purchasing.
Decision sketch
| You have |
Reach for |
| 2+ paid apps, shared audience |
Own-app bundle |
| A shareable-job subscription |
Family Sharing on |
| A complementary indie peer with real traffic |
Cross-developer suite (or mutual offer codes today) |
| Institutions asking to buy seats |
Group Purchases / volume price bands (live — configure in ASC) |
Output Format
Portfolio: bundle-eligible apps? bundle live? Complete-My-Bundle pricing sane?
Family Sharing: enabled where the job is shareable? entitlement handling tested?
Partnerships: candidate named? terms sketched?
Institutional: demand evidence? seats model drafted? volume price bands configured?
Each gap routed to the numbered section above; StoreKit implementation to
generators/subscription-lifecycle, offer distribution to generators/offer-codes-setup.
References
1---
2name: bundles-and-licensing
3description: Revenue beyond the single-app price tag — own-app bundles, Family Sharing as a conversion lever, cross-developer bundles & suites, and institutional licensing via Group Purchases / Apple School & Business Manager. Use when a developer has multiple apps, a subscription worth sharing, complementary indie partners, or school/clinic/business buyers.
4allowed-tools: [Read, Write, Edit, Glob, Grep]
5last_verified: 2026-07-16
6review_by: 2027-06-22
7---
8
9# Bundles & Licensing
10
11Four ways one piece of software earns more than one price tag.
12
13## When This Skill Activates
14
15- A portfolio developer asks how apps can sell each other ("bundle my apps?")
16- Deciding whether to enable Family Sharing on a subscription or purchase
17- Exploring partnerships with complementary indie apps
18- Schools, clinics, or businesses keep asking "how do we buy 30 seats?"
19- The store-growth audit flags P8.5, P8.6, or P8.7
20
21## 1. Own-app bundles (available now)
22
23App bundles group up to 10 of your own paid apps — or apps sharing a subscription — at a bundle
24price, with **Complete My Bundle** crediting what a user already paid.
25
26- ✅ Portfolio play: your catalog cross-sells itself on every member app's product page — a
27 discovery surface, not just a discount (pairs with the checkbox-storefront and portfolio
28 tactics in `app-store/marketing-strategy`).
29- ✅ Price the bundle at "second app ~half off, third+ nearly free" — the goal is basket size
30 and page presence, not margin per unit.
31- ❌ Bundling apps with no shared audience; the bundle card confuses both product pages.
32- Mechanics: paid apps only (or one subscription spanning the bundle); free apps can't bundle.
33
34## 2. Family Sharing (available now — chronically under-enabled)
35
36A checkbox per IAP/subscription in ASC, plus StoreKit handling for shared entitlements. One
37purchase covers up to 5 additional family members — 6 entitlements, "6 for the price of 1".
38
39- ✅ Enable for subscriptions whose *job* is shareable (utilities, education, health, home) —
40 "the whole family for one price" beats a 6× cheaper feel at maybe 1.5× usage cost, and it's a
41 paywall differentiator against non-sharing competitors.
42- ✅ Drive paywall copy off `isFamilyShareable` rather than hardcoding "share with your family".
43- ✅ Distinguish `ownershipType` — `PURCHASED` vs `FAMILY_PURCHASED` — to tailor onboarding;
44 the family member never saw your paywall or purchase flow.
45- ✅ Family entitlements arrive *outside* any purchase flow, and after a deliberate delay (the
46 purchaser gets a window to disable sharing first) — listen on `Transaction.updates`, and
47 check entitlement before merchandising (a family member may already be covered).
48- ✅ Handle `revocationDate` + the REVOKE server notification by re-deriving entitlements from
49 the full transaction history; test the revoked-from-family path.
50- ❌ Enabling it on a per-seat B2B-ish product where sharing cannibalizes real seats — that's
51 what volume licensing (below) is for.
52- One-way door: enabling takes effect **within hours for new and existing customers** and is
53 irreversible — turning it off only affects new purchases.
54
55## 3. Cross-developer bundles & suites
56
57Combined subscriptions spanning apps from *different* developers — the "indie suite" model
58(several complementary tools, one subscription).
59
60- The unlock: each partner's install base becomes the others' warm audience — distribution
61 cheaper than any paid channel.
62- ✅ Partner selection: same buyer, adjacent jobs, no feature overlap (writing tool + reference
63 manager + focus timer, not three writing tools). Draft revenue-share on *attribution of the
64 acquiring app*, not equal splits.
65- ✅ Verify current ASC mechanics before promising a ship date — cross-developer suites are a
66 recent capability and terms/tooling are still settling; the fallback is coordinated own-app
67 pricing + mutual offer codes (`generators/offer-codes-setup`).
68- ❌ Partnering with an app whose rating or privacy posture you wouldn't put your name on — a
69 suite shares reputational blast radius (run `app-store/originality-check` thinking on partners).
70
71## 4. Group Purchases & Volume Purchasing — institutional sales
72
73Live for all auto-renewable subscriptions using StoreKit 2 (StoreKit 2 required). ON by default
74for most new and existing StoreKit 2 subscriptions — but Family Sharing-enabled subscriptions
75are opted OUT by default. Configure per subscription in ASC.
76
77Two sale paths, same seat pool:
78- **In-app group purchases** — a customer buys N seats, shares an invite link, and accepters are
79 auto-assigned to seats.
80- **Volume purchasing** through **Apple Business Manager / Apple School Manager** — the
81 institutional channel for schools, clinics, and businesses.
82
83Mechanics:
84- **Volume pricing = up to 5 price bands**, with full control of seat thresholds and each band's
85 price. The default is every seat at the current price — no discount exists until you configure
86 bands (e.g., $19.99 → $13.99 at 21–40 seats → $10.99 at 41+; a 50-seat purchase then averages
87 ~20% off).
88- ✅ Prefer the built-in seat management (invites, acceptance tracking, seat lifecycle) unless
89 you already run member management — then use the App Store Server API group endpoints instead.
90- ✅ Merchandise the group value in-app — buyers won't discover multi-seat pricing on their own.
91- ✅ Education/health apps: this often outearns consumer conversion optimization by an order of
92 magnitude — one district buys more seats than a year of paywall A/B tests adds.
93- ❌ Building custom seat management UI before validating a single institutional buyer exists —
94 the built-in flow covers the first sale.
95- Custom Apps via Apple Business Manager remain the path for bespoke B2B distribution; Group
96 Purchases brings multi-seat to the mainstream store — different tools, same buyer.
97- Reference: the WWDC26 session on group purchases and volume purchasing.
98
99## Decision sketch
100
101| You have | Reach for |
102|---|---|
103| 2+ paid apps, shared audience | Own-app bundle |
104| A shareable-job subscription | Family Sharing on |
105| A complementary indie peer with real traffic | Cross-developer suite (or mutual offer codes today) |
106| Institutions asking to buy seats | Group Purchases / volume price bands (live — configure in ASC) |
107
108## Output Format
109
110```
111Portfolio: bundle-eligible apps? bundle live? Complete-My-Bundle pricing sane?
112Family Sharing: enabled where the job is shareable? entitlement handling tested?
113Partnerships: candidate named? terms sketched?
114Institutional: demand evidence? seats model drafted? volume price bands configured?
115```
116
117Each gap routed to the numbered section above; StoreKit implementation to
118`generators/subscription-lifecycle`, offer distribution to `generators/offer-codes-setup`.
119
120## References
121
122- https://developer.apple.com/help/app-store-connect/create-an-app-bundle/
123- https://developer.apple.com/documentation/storekit/supporting-family-sharing-in-your-app
124- https://support.apple.com/guide/apple-business-manager/welcome/web
125- Related skills: `monetization` (pricing/tiers), `generators/subscription-lifecycle`, `generators/offer-codes-setup`, `growth/store-growth-audit`