Introduction
Testing your React Native or Expo app on a real iPad device is crucial for ensuring your app works seamlessly across all iOS devices. While the iOS Simulator is great for quick iterations, nothing beats testing on actual hardware to catch device-specific issues, performance bottlenecks, and real-world user experience problems.
If you've been developing on iPhone and want to expand testing to iPad, or if you're just starting with iOS development, this guide will walk you through the entire process of setting up your iPad as a development device in Xcode. We'll cover everything from initial setup to troubleshooting common issues, ensuring you can deploy and test your app on iPad as smoothly as you do on iPhone.
This guide is based on real experience using an iPad 10th generation running iPadOS 18.2 with Xcode on a Mac Mini, but the steps apply to any modern iPad and Mac combination.
Prerequisites
Before we begin, make sure you have the following ready:
Hardware Requirements
- Mac computer running macOS Monterey (12.0) or later
- iPad running iPadOS 16.0 or later
- USB-C or Lightning cable (depending on your iPad model) to connect your iPad to your Mac
Software Requirements
- Xcode 14.0+ installed from the Mac App Store
- React Native or Expo project ready to build
- Node.js and npm/yarn installed on your Mac
Account Requirements
- Apple ID (free or paid developer account)
- Free account: Can deploy to 3 devices, apps expire after 7 days
- Paid account ($99/year): Can deploy to 100 devices, apps last 1 year
Project Setup
- If using Expo, ensure you've run:
bash
npx expo prebuild
- Your iOS project folder with
.xcworkspace
file ready
Step-by-Step Guide
Step 1: Prepare Your iPad
- Update your iPad to the latest iPadOS version (Settings โ General โ Software Update)
- Connect your iPad to your Mac using the appropriate cable
- Unlock your iPad and keep it unlocked during the setup process
- When prompted on your iPad, tap "Trust This Computer" and enter your passcode
Step 2: Open Your Project in Xcode
- Navigate to your project's iOS folder:
bash
cd your-project-name/ios
- Open the workspace file in Xcode:
bash
open YourAppName.xcworkspace
โ ๏ธ Important: Always open the.xcworkspace
file, not the.xcodeproj
file
- Wait for Xcode to index your project (you'll see a progress bar at the top)
Step 3: Configure Your Project for iPad
- Select your project in the navigator (left sidebar)
- Select your app target under "TARGETS"
- Go to the "General" tab
- Under "Deployment Info":
- Change "Devices" from "iPhone" to "iPhone, iPad" (Universal)
- Verify "Supported Destinations" includes iPad
- Set minimum iOS version if needed
Step 4: Enable Developer Mode on iPad
Developer Mode is hidden by default on iPadOS 16+. Here's how to enable it:
- In Xcode, select your iPad from the device list (top toolbar, next to the Run button)
- If your iPad shows as "unpaired", that's normal for now
- Click the โถ๏ธ Run button to attempt building
- You'll see an error about Developer Mode being disabled โ this is expected!
- On your iPad, go to:
- Settings โ Privacy & Security
- Scroll to the bottom
- "Developer Mode" should now be visible
- Toggle Developer Mode ON
- Your iPad will prompt to restart โ tap "Restart"
- After restart, you'll see "Enable Developer Mode?" โ tap "Turn On"
- Enter your iPad passcode to confirm
Step 5: Register Your iPad with Xcode
- Back in Xcode, ensure your iPad is selected as the target device
- Click โถ๏ธ Run again
- A dialog will appear: "Device 'Your iPad' isn't registered in your developer account"
- Click the blue "Register Device" button
- Xcode will automatically:
- Add your iPad's UDID to your Apple Developer account
- Create or update the provisioning profile
- Configure the device for development
- Wait for registration to complete (usually takes 10-30 seconds)
Step 6: Build and Deploy Your App
- Once registration is complete, Xcode will automatically continue building
- Build progress appears in the top bar of Xcode
- First build takes 2-5 minutes depending on your project size
- When complete, the app will automatically install and launch on your iPad
Step 7: Trust Your Developer Certificate (First Time Only)
If your app doesn't launch or shows an "Untrusted Developer" message:
- On your iPad, go to:
- Settings โ General โ VPN & Device Management
- Under "Developer App", find your Apple ID
- Tap on your developer profile
- Tap "Trust [Your Apple ID]"
- Confirm by tapping "Trust" again
Step 8: Success! ๐
Your app should now be running on your iPad! For subsequent builds:
- Simply connect your iPad
- Select it in Xcode
- Hit Run โ no additional setup needed
Troubleshooting Common Issues
iPad Not Showing in Xcode
- Check cable connection โ try a different cable if available
- Ensure iPad is unlocked
- Restart both devices if needed
- Open Window โ Devices and Simulators to see if iPad appears there
"Failed to Register Device" Error
If automatic registration fails:
- Copy your iPad's UDID from Xcode (Window โ Devices and Simulators)
- Manually register at developer.apple.com
- Clean build folder (Product โ Clean Build Folder or โงโK)
- Try building again
App Crashes on Launch
- Ensure you've trusted the developer certificate (Step 7)
- Check that your deployment target iOS version is compatible with your iPad
- Review the Xcode console for specific error messages
"Maximum Number of Apps for Free Development" Error
Free developer accounts can only have 3 apps installed at once:
- Delete old development apps from your iPad
- Or upgrade to a paid developer account
iPad-Specific Development Tips
Responsive Design Considerations
When developing for both iPhone and iPad, consider these React Native adjustments:
javascript
import { Dimensions, Platform } from 'react-native';
const isTablet = Platform.OS === 'ios' &&
Dimensions.get('window').width >= 768;
const styles = StyleSheet.create({
container: {
padding: isTablet ? 40 : 20,
flexDirection: isTablet ? 'row' : 'column',
}
});
Supporting Multiple Orientations
Add to your Info.plist
for proper iPad orientation support:
xml
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
Conclusion
Deploying your React Native or Expo app to a real iPad device is a straightforward process once you understand the steps. The key points to remember are:
- Developer Mode must be enabled on iPadOS 16+
- Device registration is a one-time process per device
- Trust your developer certificate on first installation
- Free accounts work great for testing but have limitations
With your iPad now set up as a development device, you can iterate quickly, test iPad-specific features, and ensure your app provides an excellent experience across all iOS devices. Happy testing!
Have questions or run into issues not covered here? Feel free to leave a comment below or reach out on Twitter. Building in public means learning together!
Member discussion