4.3(a) still fingerprints binary + metadata + concept — three-layer substantive diff, not another UI reskin
2026-10-28 · Policy Insights
Guideline 4.3(a) still fingerprints binary + metadata + concept — the fingerprint did not retire; a UI reskin is not enough; “similar to a terminated developer account” is an aggravating signal; fix before resubmit means a three-layer substantive-diff checklist (Concept / Metadata / Binary), not another cosmetic pass.
Apple’s Design · Spam rule under Guideline 4.3 still looks for apps that share a similar binary, metadata, and/or concept with apps already on the Store (or previously submitted). The October 16, 2026 Guidelines update did not rewrite that shape away. Teams stuck in a 4.3(a) loop usually keep shipping a new skin — and keep getting the same letter.
This piece is the pre-resubmit checklist: what a reviewer can verify in two to three minutes. It is not a second account-termination how-to, and not a 2.5.19 hidden-feature recovery twin.
What the letter is (and is not)
| Signal in the letter | Bucket | Do this |
|---|---|---|
| Similar binary / metadata / concept · Design Spam | 4.3(a) | Three-layer substantive diff below |
| Mentions a terminated Apple Developer Program account | 4.3(a) + aggravating | Layer C originality evidence + structured Resolution Center reply before another blind resubmit |
| Incomplete / Information Needed / cannot find IAP | 2.1 | Recording + demo Notes — not this checklist |
| Paywall / subscription disclosure | 3.1.x | Payment guidelines — not this checklist |
| Hidden / dormant / post-approval unlock | 2.5.19 | Honest-binary recovery leaf — not this checklist |
Three-layer substantive-diff checklist (≥2 demoable items per layer)
Layer A — Concept / product identity
- ☐ One-sentence unique value (not a category slogan), visible on first screen / first screenshot
- ☐ Who the app is for vs same-category lookalikes (Notes + description)
- ☐ Core workflow in three steps that a template app does not share (device recording)
- ☐ Review Notes still contain a uniqueness paragraph this round (clearing Notes has publicly coincided with another 4.3(a))
Layer B — Metadata / product page
- ☐ Name / subtitle / keywords are not template keyword salad
- ☐ Screenshots show the real main path; first frame sells uniqueness
- ☐ Description structure: problem → method → differentiation (not generic filler)
- ☐ Same Team portfolio does not read as a clone matrix
Layer C — Binary / engineering fingerprint
- ☐ Template / scaffold residue removed (default screens, sample bundle names, unused assets)
- ☐ Icons / splash / art not stock clones
- ☐ Since last reject: feature change list (not colors/fonts only)
- ☐ If the letter cites a terminated account: no-affiliation statement + originality evidence (design history, contracts, commit timeline)
- ☐ Oversized shared SDKs that inflate binary similarity: reduce or document owned logic (community observation — not an Apple formula)
Decision tree (before you hit Submit again)
4.3(a) reject
├─ Only UI / screenshots changed? → STOP. Finish Layers A + C.
├─ Letter names terminated account? → RC structured reply + C4 first; do not blind-resubmit.
├─ Same Team multi-clone feel? → Cut matrix or escalate association risk (soft-link account leaves).
└─ Sticky multi-round 4.3(a) after real feature work? → Consider App Review 1:1 or Board; do not open appeal and resubmit in parallel.
Sticky-loop exit is 1:1 / Board after real feature work — not the Nth cosmetic reskin.
Notes uniqueness (every round)
Keep a short uniqueness paragraph in Review Notes on every resubmit. Clearing Notes has publicly coincided with another 4.3(a). Do not treat empty Notes as a shortcut.
Public clear/pass patterns (not client cases · not guarantees)
Public posts that later cleared 4.3(a) often combine real feature work with a human re-route (1:1 booking coinciding with approval, Board, or persistent appeals) and keep uniqueness text in Notes every resubmit. Treat those as intake patterns — never as a promise.
Resolution Center skeleton (draft for the account holder to send)
Hello App Review,
Thank you for the feedback regarding Guideline 4.3(a).
1) Originality / ownership
- We have no affiliation with any terminated Apple Developer account.
- This app was designed and developed by [entity]. Evidence: [brief].
2) Substantive differentiation (not cosmetic)
- Concept: …
- User-visible workflow unique points: (1) … (2) … (3) …
- Since last submission we changed: [features, not colors only]
3) How to verify in 3 minutes
- Demo account: …
- Path: install → … → …
- Device recording attached / described: …
We respectfully request another review of this build.
Soft-links (escalate / different bucket · bodies not reprinted)
- Association escalate: Apple associated-account ban · ZH
- Association / Notes escalate: Apple account termination 5.6 / 2.1 Notes · ZH
- Different bucket (hidden-feature / bait-switch recovery — do not merge into this 4.3(a) leaf): Apple 2.5.19 bait-switch recovery · ZH
Soft CTA
Stuck in a 4.3(a) loop on your developer account? Quiet intake on Telegram: t.me/LaoK1788. Evidence-backed differentiation on the client’s own console — no public email CTA, no competitor shop names, no gray “代上架.”
Three-layer substantive-diff check
What this leaf is not
- Not a reprint of account-risk 5.6 / 2.1, associated-ban, or 2.5.19 bait-switch recovery bodies (soft-link only).
- Not a second copy of the 2.5.19 + 2.3.14 presubmit checklist.
- Not Play closed-testing (B HOLD — unrelated).
- Not legal advice, not “how to pass spam,” and not a claim that KappS sells accounts or gray listing shortcuts.
Sources
- App Store Review Guidelines — Design / Spam (4.3)
- Internal EO playbook:
kapps-hub/knowledge/playbooks/appstore-4-3a-substantive-diff-template.md(+ deepen twin) - Soft-link only when association escalates / different bucket: leaves listed above
Policy education only — not legal advice. Polished 2026-10-28 (Asia/Singapore).