Adding iPod Support to (previously) iPhone Only App
Background
When starting a new project, it’s not uncommon to inherit existing codebases or apps that were initially developed for one device type. In our case, the app we’re working with was originally designed for iPhones only, and we needed to modify it to also run on iPod Touch devices.
Our journey began with Apple’s announcement that they removed the option to set device requirements in iTunes Connect, which had previously been used to specify compatibility for different devices. Instead, developers were advised to add the UIRequiredDeviceCapabilities
key to their app’s Info.plist file to indicate specific hardware features required by the app.
The Problem
Despite following Apple’s guidelines and setting the UIRequiredDeviceCapabilities
key in our app’s Info.plist file to include location services (GPS or Skyhook) and Wi-Fi capabilities, we encountered an unexpected issue. When we compiled the iPod-compatible version of our app, it still defaulted to iPhone-only settings in iTunes Connect.
This problem arose because Apple removed the feature that allowed developers to set device requirements during the initial upload process. As a result, we couldn’t change the default device requirement for our app in iTunes Connect even though we had modified the Info.plist file.
Research and Investigation
We spent several weeks researching this issue, consulting various sources, including Apple’s documentation and developer forums. We also exchanged emails with Apple representatives to get clarification on the process.
During our investigation, we discovered that the problem was specific to apps that were originally uploaded to the App Store with iPhone-only settings. In contrast, development versions of these apps could be built without issues using Xcode.
The Solution
After extensive research and collaboration with Apple, we finally uncovered a solution to this problem.
Steps to Avoid Compatibility Issues
To avoid compatibility issues when adding iPod support to an iPhone-only app:
- Compile your new App with the required
UIRequiredDeviceCapabilities
in theinfo.plist
file.- Consult Apple’s documentation for more information on Device Support.
- Send an email to support@apple.com listing the following information:
- Application Name
- Apple ID
- Bundle Identifier
- Bundle Version
- Required Capabilities
- When approved by Apple, have the reviewer TURN OFF the default device requirements originally set in iTunes Connect.
- If you don’t send an email before your App is approved, you’ll need to submit another binary even if the iTunes Connect override is set correctly.
Email Template
Here’s a sample email template that we used:
Subject: Request for Override of Default Device Requirements
Dear Apple Reviewer,
I’m reaching out to request an override of the default device requirements originally set in iTunes Connect during the initial upload process. As you may be aware, this feature has been removed.
Our app was originally uploaded with iPhone-only settings, but we’ve modified it to also run on iPod Touch devices. We’ve added the UIRequiredDeviceCapabilities
key to our app’s Info.plist file to indicate location services (GPS or Skyhook) and Wi-Fi capabilities.
To confirm compatibility, I’m including the following information in this email:
- Application Name: [Your App Name]
- Apple ID: [Your Apple ID]
- Bundle Identifier: [Your Bundle Identifier]
- Bundle Version: [Your Bundle Version]
- Required Capabilities: location-services (GPS or Skyhook), wi-fi
Please let me know if there’s any additional information you need from us. We appreciate your prompt attention to this matter.
Best regards,
[Your Name]
Lessons Learned and Best Practices
Our experience highlights the importance of keeping up-to-date with Apple’s guidelines and documentation. By researching and understanding the process, we were able to resolve the issue and ensure our app is compatible with both iPhone and iPod Touch devices.
To avoid similar compatibility issues in the future:
- Always consult Apple’s documentation and developer forums when encountering issues.
- Keep your development environment and tools up-to-date.
- Be proactive about reporting issues and requesting support from Apple.
- Plan your upgrade carefully, as resolving complex compatibility issues can take time.
Last modified on 2023-12-30