<!--
{
  "availability" : [
    "iOS: 17.4.0 -",
    "iPadOS: 17.4.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "marketplacekit",
  "identifier" : "/documentation/MarketplaceKit/AppDistributor",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "MarketplaceKit"
    ],
    "preciseIdentifier" : "s:14MarketplaceKit14AppDistributorO"
  },
  "title" : "AppDistributor"
}
-->

# AppDistributor

Options that describe the marketplace from which the app installs.

```
enum AppDistributor
```

## Overview

Apps on alternative app marketplaces need to use APIs that vary from apps on the App Store. Specifically, use:

- <doc://com.apple.documentation/documentation/AdAttributionKit> for ads.
- An e-commerce solution other than the App Store’s <doc://com.apple.documentation/documentation/StoreKit/in-app-purchase> system.
- A social gaming network other than <doc://com.apple.documentation/documentation/AppStoreConnectAPI/game-center> unless your app is also on the App Store.
- <doc://com.apple.documentation/documentation/BackgroundAssets> to download large files in the background rather than [On Demand Resources](https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/).

To observe API differences, check the value of the app distributor’s static ([`current`](/documentation/MarketplaceKit/AppDistributor/current)) property to determine the installation source:

|App distributor case                                                                          |Installation source                                                                    |
|----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|
|``doc://com.apple.MarketplaceKit/documentation/MarketplaceKit/AppDistributor/appStore``       |The App Store                                                                          |
|``doc://com.apple.MarketplaceKit/documentation/MarketplaceKit/AppDistributor/testFlight``     |TestFlight                                                                             |
|``doc://com.apple.MarketplaceKit/documentation/MarketplaceKit/AppDistributor/marketplace(_:)``|Alternative app marketplace; the argument `String` identifies the marketplace bundle ID|
|``doc://com.apple.MarketplaceKit/documentation/MarketplaceKit/AppDistributor/web``            |The developer’s website                                                                |
|``doc://com.apple.MarketplaceKit/documentation/MarketplaceKit/AppDistributor/other``          |Enterprise or education developer programs                                             |

API availability varies depending on the source, so your app needs to check the current source at each launch — not just at the first launch — and adjust the APIs it uses accordingly.

In addition, for apps that aren’t marketplaces, use [`eligibilityRegion`](/documentation/MarketplaceKit/AppDistributor/eligibilityRegion) to determine if an Apple Account is signed in that has a region eligible for transaction reporting.

For more information, see [Distributing your app on an alternative app marketplace](/documentation/marketplacekit/distributing-your-app-on-an-alternative-marketplace).

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)