Setapp requirements
Get to know the acceptance criteria and technical requirements.
Setapp Review Guidelines
Cross-platform requirements
Requirements for macOS
Requirements for iOS for Setapp
Requirements for iOS for Setapp Mobile
Requirements for web
Setapp frees users from the burden of reading reviews, comparing prices, trying features, and making choices. We are responsible for choosing the best apps on the market and expect your app to speak for itself. Setapp users get only the best apps without limits.
Our approach implies very high quality and reputation standards. If your product matches them, you will need minimum technical input to go live on Setapp. Review the guidelines and make the necessary changes. If you face any difficulties, please contact Setapp Review Team, and we will gladly assist you.
Follow the Setapp Review Guidelines
We've created a short list of guidelines to help you develop suitable products or adapt your existing apps to Setapp standards. Feel free to get acquainted with the full version of Setapp Review Guidelines. You can proceed with the technical implementation after ensuring your apps match the Setapp standards.
Cross-platform requirements (macOS, iOS, iPadOS, and web)
Compatibility and quality standards:
- App functionality must be appropriately tested ("demo"', "trial," or "test" versions are not allowed).
- You can release beta versions of your app (macOS only) in Setapp.
- App description and other text metadata must be relevant to the app content and functionality
Not allowed functionality:
- Undocumented or hidden features
- Features or app components that require Setapp users to pay on top of their subscription fees (including any in-app purchases or donations)
- Advertising and promotional functionality
Moreover, we urge you not to add your app to Launch Agents automatically. Please ask for a user’s consent first.
Requirements for macOS apps
- The app must be notarized.
- The apps must be signed with a Developer ID certificate.
- Compatibility with the latest macOS version must be tested and confirmed.
- Universal (fat) binary for
arm64
andx86_64
. Read Building a Universal macOS Binary in the Apple Developer Guide.
We don't have strict requirements for supporting macOS versions from 11.0 (Big Sur) and later. However, there is no reason for you to bump the minimum macOS target of your project. Setapp runs on 10.13 and later. Your revenue could increase if Setapp users can use your app on older OS editions.
Please make sure you tested the OS compatibility properly. Note that Setapp users must receive a corresponding notification if your app doesn't run on their current macOS version.
Not allowed functionality:
- Paid features or app components
- Proprietary installer and update frameworks
- Activation and licensing mechanisms
- Built-in stores and in-app purchases
Requirements for iOS apps in Setapp
-
The iOS app must be distributed via the Apple App Store as a free app with in-app purchases.
1.1. The paid features must be available for Setapp users with an active subscription. This can be verified using the Setapp Framework's public API or server-server Setapp Vendor API. It also relates to app extensions (share extension, safari extension, iMessage extension, widget extension, etc.). The app should not send push notifications to the user about purchasing a subscription.
1.2. Non-Setapp users must also be able to unlock the whole app's functionality, for example, using in-app purchases on the App Store. In other words, the Setapp Framework must not be the only mechanism for activating the apps' paid features.
1.3. Your Setapp version should not include "Rate on App Store" or "Share app > App Store" links. We will soon provide an option to share a link on Setapp.
-
Integration requirements
2.1. The app must support custom URL schemes.
2.2. The app must be integrated via:
- The Setapp Framework and have the Setapp public key or
- The vendor API has built-in "Sign in with Setapp" functionality.
- Activation requirements:
3.1. The app must be activated right after scanning the QR code without additional user actions, even if it’s the first launch. Alternatively, the app can start the "Sign in with Setapp" flow. Note: The user must not enter email manually because it won’t work in cases where iOS is the first platform to install the app.
3.2. The user must see the activation status — successfully activated
or not. If the app is not activated, the user must see a message that explains the reason for denial (device limit is reached, no internet connection, etc.). Our Setapp Framework includes all the messages that you can use as they are or as templates for your own messages.
3.3. The app must be activated both with usual (e.g.,co.noteplan.NotePlan3
) and lowercase (e.g.,co.noteplan.noteplan3
) URL schemes. For your convenience, we’ve added an option to the QR Code Generator to switch between these schemes quickly. See more details in Testing your iOS app.
3.4. The app must not display the trial start pop-up if activation was successful.
3.5. The app settings must show that the app has an active Setapp subscription if activation is successful.
3.6. If activation is successful, the Setapp subscription must remain active even after the iOS app is forced to close.
Requirements for iOS apps in Setapp Mobile
- The Setapp Mobile app must not offer in-app purchases, while in-app purchases are mandatory for this app on another platform(s).
- The paid features must be available for Setapp Mobile users with an active subscription within the app and app extensions. This can be verified using the Setapp Framework public API.
- The app should not send push notifications to the user about purchasing a subscription.
- The app should not include "Rate This App" and "Share This App" functionality for Setapp Mobile users.
- Integration requirements:
- The app must have a custom URL scheme matching the app's bundle identifier.
- The app must fully integrate with the Setapp Framework.
- Activation requirements:
- Right after the activation link redirects, your app must be activated without additional steps.
- The user must see the activation status.
By default, Setapp Framework shows activation status alerts while activation is in progress, succeeded, or failed.
Alternately, you can implement your own activation status alerts and present them when the Setapp Framework API asks for them.
- Additional requirements:
- The app must not display paywalls and/or trial prompts.
- The app should respect the Setapp subscription status and always preserve premium features while it's active (even after force-closing the app).
- The app should not cache subscription status and only rely on Setapp services to get the actual Setapp subscription status.
- The app must show the Setapp subscription status in the app settings or user profile.
Requirements for web apps
-
The web app must also be available on macOS or iOS in Setapp.
-
The web app must integrate the "Sign in with Setapp" authorization flow.
-
The user must see the activation status —
successfully activated
or not. If the app is not activated, the user must see a message explaining the denial (subscription isn't active, no internet connection, etc.). You can use our messages from Setapp Framework as they are or as templates for your own messages. -
We'd also like to ask you to name the button "Sign in with Setapp" (not "Log in with Setapp," "Continue with Setapp," etc.) for consistency across all Setapp web apps.
All the necessary information related to the review process is also available in your Setapp developer account.
Updated 2 months ago