Apple platforms make it easy to distribute your app to a variety of compatible devices, so it’s important to maximize your app experience on each platform you support. Here are some tips from App Review to help you understand how device compatibility impacts your app’s distribution — and how to make sure your apps shine on every platform they’re on.
Understand device compatibility
There are many ways an app built for one Apple device can run on other Apple devices:
- Apps designed for iPhone can run on iPad devices in compatibility mode if there are no dependencies on iPhone device capabilities.
- Compatible iPhone and iPad apps can run unmodified on Macs with Apple Silicon.
- Compatible iPhone and iPad apps can run unmodified on Apple Vision Pro.
Xcode provides options to configure settings for apps on multiple platforms. You can specify which platforms your app’s target supports in the Supported Destination field.
However, it’s important to note: People may still be able to run your app on a device even if you remove it or don't include it as a Supported Destination in Xcode.
For example, as long as an app designed for iPhone doesn’t depend on a capability that’s only available on iPhone, it can be downloaded from the App Store onto iPad. Adding or removing iPad as a Supported Destination in Xcode won’t change that app’s availability on iPad.
To view examples of cases where it's appropriate to restrict availability, see Restrict device distribution below.
Follow compatibility best practices
1. Plan and test for compatibility modes so your app works on every device where it can be downloaded.
Do:
- Use Xcode simulators to verify basic functionality across different device types.
- Leverage TestFlight with external testers who have access to a wide range of Apple devices.
Don't:
- Don’t submit for review without testing your app’s behavior in compatibility modes.
- Don’t assume removing a supported destination in Xcode prevents distribution to that device type.
2. Build adaptive interfaces that work across device variations.
Do:
- Build interfaces that respond to different screen sizes and orientations.
- Adapt features based on available hardware, providing alternatives for a consistent experience.
Don't:
- Don’t design rigid interfaces that assume only one type of device or input method.
- Don’t let your app crash or become unusable when optional hardware is unavailable.
Restrict device distribution
Wherever possible, it’s best to make your app available on multiple platforms to increase its reach and provide people with a consistent experience across devices. But there are cases where it does makes sense to restrict an app’s availability. For example:
-
iPhone apps that rely on iPhone-specific hardware won’t function as expected on iPad. Use the UIRequiredDeviceCapabilities key in the information property list file to specify hardware dependencies.
- Note: Apps should only use the UIRequiredDeviceCapabilities key for genuine hardware dependencies, not to indicate distribution preferences.
-
Navigation- or camera-based apps are not well suited for visionOS. Learn more about managing availability of iPhone and iPad apps on Apple Vision Pro.
-
Apps that rely heavily on touch inputs that can’t be replicated on a keyboard are not well suited for macOS. Learn more about restricting distribution to Apple Silicon devices.
Learn more about how to configure multiplatform apps in Xcode.
Support
If you need more assistance, explore these support options:
- If your submission has been rejected, reply to the message from App Review in App Store Connect and request clarification.
- Request an App Review appointment through Meet with Apple. Appointments are available during local business hours on Tuesdays and Thursdays.
- If you believe your app follows the App Review Guidelines, consider submitting an appeal to the App Review Board.