Skip to content

White-Label iOS App Development

White-label iOS app development for companies that need one app shipped as many branded apps: a single Swift codebase, a configuration folder per brand, a CI pipeline that builds every brand, and a release process that keeps a dozen App Store listings moving without a dozen iOS teams.

I architected the multi-brand configuration system behind Sincerely Health, which ships one Swift codebase as sixteen Albertsons banner apps (Safeway, Vons, Shaw’s, Jewel-Osco, Acme, and others), each with its own theme, feature set, and store-specific content driven by config. The structure behind it, from build configuration to release management, is written up in White-Label iOS Architecture: One Codebase, Many Brands. This page covers what it looks like to have that built for you.

What I Deliver

  • One Swift codebase with no brand conditionals in feature code
  • Per-brand build configurations, bundle IDs, and signing
  • Theming through asset catalogs and a typed design token layer
  • Capability flags so brands can differ in features, not just colours
  • CI that archives, signs, and uploads every brand from one lane
  • Release management across every App Store Connect listing
  • Brand onboarding checklist your team can run without me

Who It Is For

  • Agencies delivering branded apps to several clients from one product
  • Franchise, retail, and membership businesses with many banners or locations
  • SaaS vendors giving each customer an app under the customer’s name
  • Healthcare, loyalty, and fitness platforms serving partner brands
  • Teams whose existing app is about to be sold to a second brand

How One Codebase Becomes Many Apps

The rule that keeps a white-label programme maintainable is simple to state and hard to hold: feature code never names a brand. Everything that differs between brands lives in one of three places, resolved behind a single interface the rest of the app reads from.

  • Build configuration: one Xcode configuration or target per brand sets the bundle identifier, display name, development team, entitlements, and the brand key everything else hangs off.
  • Theming: a per-brand asset catalog for colours, logos, and imagery, plus a token layer for typography, spacing, and corner radii. SwiftUI reads tokens from the environment, so a screen is written once and renders correctly for every brand.
  • Capability flags: a typed configuration that says which features a brand has, which loyalty programme it integrates with, and which endpoints it talks to. The app checks a capability, never a brand name.

Adding a brand then means a new configuration folder, an asset catalog, and an App Store Connect record. No feature code changes, which is the test I use to confirm the structure is holding.

CI That Builds Every Brand

One parameterised lane, in Fastlane or your CI’s matrix, derives the scheme, signing team, and App Store Connect credentials from a brand key. Pull requests build a reference brand plus a conformance check across the rest that asserts configuration completeness, asset presence, and launch health. Release builds fan out to every brand on parallel runners with a shared package cache.

Release Management Across Listings

Submitting every brand at once produces correlated rejections, so a reference brand goes to review first, then the rest. Versioning is decided early: lockstep, where every brand ships the same version the same week, or independent, with the support cost that brings. Phased release is per listing, so a problem in one brand’s configuration pauses that brand alone.

Developer Account Ownership

Two models. Your own account publishes every app, which is simplest to automate: one certificate, one API key. Or each brand’s own account publishes its app, which retail and agency clients usually want because the listing names them as the seller, and which Apple expects when the brands are separate companies. The second model means a development team per brand and a set of credentials per brand held securely in CI. I set up either, and the codebase is identical in both.

Staying Within App Store Review

App Store Review Guideline 4.2.6 rejects apps built from a commercialized template or generation service unless the content provider submits them directly, and offers a single container app with a picker as the alternative. Guideline 4.3(a) rejects multiple bundle IDs of the same app. A white-label programme stays on the right side of both when each app is published under the brand owner’s account and carries that brand’s own content, services, and integrations rather than a colour swap. I design the capability layer with that in mind and write the reviewer notes for the first submission.

Engagement Options and How Pricing Is Scoped

White-label work is scoped in phases rather than as one number, because the variables are known early and each one moves the estimate.

  • New platform or existing app: a new build is designed configuration-first from day one; an existing app needs the brand extracted from feature code before a second brand can ship.
  • Brands in the first wave: the second brand is the expensive one, because it proves the structure. Each brand after that is mostly configuration and store setup.
  • Categories of variation: theme only is the cheapest; theme plus features, content, and per-brand integrations such as loyalty or payments adds a capability layer and conformance tests.
  • Account ownership and release cadence: per-brand developer accounts and independent versioning add CI and release work that recurs on every release.

Three ways to engage. A mobile architecture audit of an existing app, which produces the extraction plan and a scoped estimate. A build phase, billed at my contract rate of $120–$180/hr or quoted as a fixed amount once the audit has fixed the scope. And ongoing release ownership, where I run the multi-brand release train alongside your team or hand it over with documentation once it is stable. If you need the whole app, not only the white-label layer, that is covered under iOS app development.

Process

  1. Decisions first: separate listings or a container app, whose accounts publish, lockstep or independent versioning. These are expensive to reverse once listings are live, so they are settled before any code.
  2. Brand inventory: every value that differs between brands, grouped into theme, capability, content, and integration. This becomes the configuration schema.
  3. Reference brand: the first brand ships from the new structure, with the full test suite running against it.
  4. Second brand: added with configuration only. Anywhere that needs a code change is a defect in the structure and is fixed before more brands follow.
  5. CI and release lane: the parameterised build, conformance checks, and the staged submission order, documented so your team can add brand nine without me.
  6. Handover or ongoing ownership: a brand onboarding checklist, the release runbook, and either a clean handover or a standing arrangement to run releases.

Stack

Swift and SwiftUI for the app, with UIKit interop where an existing codebase needs it. Xcode configurations and xcconfig files per brand, asset catalogs for theming, Swift Package Manager for shared modules, Fastlane for the build and upload lane, TestFlight for per-brand beta groups, and Firebase Crashlytics or an equivalent with the brand key attached to every report so a crash can be traced to one configuration. The brand loading, theme and conformance pieces are open source as WhiteLabelKit, so you can read the approach before we talk.

Frequently Asked Questions

Does Apple allow white-label iOS apps on the App Store?

Yes, within two rules. App Store Review Guideline 4.2.6 says apps created from a commercialized template or app generation service are rejected unless they are submitted directly by the provider of the app's content, and it names a single container app with a picker for each client as the other acceptable model. Guideline 4.3(a) separately forbids multiple bundle IDs of the same app. In practice that means each branded app is published from the brand owner's own Apple Developer account, and each app offers that brand's own content and services rather than a reskin of a generic product.

Does every brand need its own Apple Developer account?

If the brands belong to separate companies, yes: the listing names the seller, and Apple expects the content provider to submit. If one company owns every brand, as with a retailer running several banners, a single account can hold every listing. Either way the codebase does not change; the difference is a development team identifier per brand and a set of App Store Connect credentials for CI to hold.

Can you turn an existing iOS app into a white-label platform?

Yes. The work starts with an audit of where brand-specific values live in the code, then moves them into per-brand configuration, asset catalogs, and capability flags behind a single interface. The first brand ships from the new structure while the original app keeps releasing, and the second brand is the proof that feature code no longer names a brand.

How is a white-label iOS engagement priced?

By scope, in phases. The variables are whether the codebase exists or is new, how many brands launch in the first wave, how many categories of variation the brands need (theme only, or also features, content, and integrations), and who owns the developer accounts. Work is billed at my published contract rate, and once an audit has fixed the scope a phase can be quoted as a fixed amount.

How many brands can one Swift codebase support?

The architecture is not the limit; release mechanics are. Sixteen brands means sixteen archives, signing operations, uploads, and App Store reviews per release. A parameterised CI lane and a staged submission order keep that manageable, The Sincerely Health platform I architected ships one Swift codebase as sixteen Albertsons banner apps.

What about Android for the same brands?

The same configuration-first structure applies on Android with product flavors, and I have shipped Kotlin alongside iOS on a multi-brand platform. If both platforms are new builds, a Flutter codebase with per-brand flavors is also an option; the trade-offs are covered under cross-platform development.

Need one codebase shipped as many apps?

Related Services & Insights