There are some features of iOS apps that don’t work from the iOS simulator. Maybe you want to test how your application works with the device camera or send an SMS message from your application. For these examples and more you’ll need to test and debug your app using a real device.
This post will walk through how to run the Xcode simulator on your iPhone or other iOS device and show you how to fix some common errors you’ll see along the way.
How to select your iPhone as the “Simulator” Device
Simulator is in quotes here since this will create an actual app on your phone; it’s no longer a simulation. Open up a project in Xcode and click on the device near the Run ▶ button at the top left of your Xcode screen.
Plug your iPhone into your computer. You can select your device from the top of the list.
Unlock your device and (⌘R) run the application. You’ll see Xcode install the app and then attach the debugger. The application should pop up on your phone.
Troubleshooting Common Errors
The first time I tried to connect my iPhone to Xcode it didn’t work. According to my best friend, Stack Overflow, I’m not the only one who has had issues. Let’s share the fixes to some common errors you might encounter.
“Signing Requires a Development Team”
Xcode requires that you’ve connected a Team to your project in order to run the simulator on a device. You can do this from the “General” tab of your Project Settings. As of Xcode 7 this can be any Apple ID.
Open the Team menu that currently says “None” and select your team. If you don’t have a team, select “Add an Account...” and create one with your Apple ID.
Xcode claims your device is locked when it isn’t
This fun bug has been happening since at least Xcode 6. There are a lot of potential solutions in this Stack Overflow post. Here’s what worked for me:
- Unplug your iPhone
Reset Location & Privacyon your iPhone. Found under
Settings >> General >> Reset
- Plug in your iPhone
Trustwhen prompted to
Trust This Computer
You can learn more about how trusting computers works from Apple’s support.
“iPhone is Busy”
The unsatisfying answer for this one is to just wait.
If you don’t have a sword fighting partner, you can try the following:
- Unplug your device
- Restart both Xcode and your iPhone
- Plug in your device
Activate your Debugging Superpowers
The Jasonette docs FAQ has some more tips if you have other related issues. Now that you’ve got your application running on a device you can make the most of your testing and debugging experience with these tips:
- Intermediate Debugging with Xcode 9
- 17 Xcode Tips and Tricks That Every iOS Developer Should Know
- iOS Simulator on steroids: Tips & Tricks
If you have any questions or run into any other issues, feel free to reach out to me on Twitter @kelleyrobinson.