222
votes

The app neither installs nor runs on my device. All provisioning profiles are up to date. I've already tried deleting and re-installing them.

The status bar shows that Xcode is building my project, then it says running my project on , then it says "finished running ." Throughout this entire period, the iPod screen stays black. The iPod is being detected in the Organizer and I don't see anything wrong with its configuration. Everything was working perfectly just a couple days ago with Xcode 3.

It doesn't work on the simulator, but it may be important to note that in the simulator it appears to get stuck on "Attaching to " and the simulator refuses to start.

25
If you create a brand-new project using one of the xcode templates and try to run it in either the simulator or the device will it work? I'm trying to determine if the install/configuration of xcode is broken or if something in the app you are asking about is influencing the behavior.kennbrodhagen
Created a new project template and it worked. So now we know that something must be misconfigured in my project.D-Nice
D-Nice, did you ever solve this? I'm having this exact same issue with my game, and I cannot solve it for the life of me.Adam Johnson

25 Answers

267
votes

For those reading this in regards to Xcode 4.2, and attempting to run on an earlier device (e.g. iPhone 3G, 2G, iPod 1st gen, etc) I have another solution. New projects created in Xcode 4.2 by default specify 'armv7' in the 'Required Device Capabilities'. You'll need to remove this if wanting to support devices that run armv6 (e.g. the iPhone 3G).

enter image description here

Delete armv7 from the 'Required device capabilities' in yourProjectName-Info.plist

You may also need to change the build settings to compile with armv6 instead of armv7.

This is the default:

enter image description here

Double click on 'Standard (armv7)' to add another, then click the '+' in the popup, and type in 'armv6':

enter image description here

Click done and it should look like this:

enter image description here

43
votes

I just had this problem, but for me it was because I only specified armv7 in my architectures, but the 3G is armv6. Make sure you have both.

21
votes

I had this issue, and it turns out that XCode was defaulting the Deployment Target to 4.3, whereas my phone is 4.2.1. Changing the Deployment Target to 4.0 seemed resolve it.

12
votes

After you add "armv6" to the Project and Targets' architectures, make sure you don't have "armv7" in your "Required device capabilities" section of your info.plist. If so just remove it and it should work!

11
votes

Same problem here with the app not running on the device. Deleting the app from the device didn't help. Project -> Clean then Project -> Run again didn't help either. Turned out that just Quitting and restarting Xcode 4 solved it.

9
votes

I just had this too. I had added a UIRequiredDeviceCapabilities section to info.plist, requiring gamekit, and the app would not get copied onto an iPhone 3G running iOS 4.2. Removed the required capability, all is well.

6
votes

Try deleting the app on the device (just like your usual app uninstall) and running it from Xcode again. Helped me with the same problem, apart from the simulator not working.

6
votes

Mine case: I mistakenly set the: Required device capabilities -> accelerometer to NO (in Info.plist). Just have to set it back to YES

Also: Make sure that the Required device capabilities is of the proper type: i.e. Boolean or String. The wrong type will invariably make the test fail, and the app not load.

4
votes

For those still floundering, another thing that I had to do was make the name of my target's product the same for Debug and Release configurations. It had been "running" the Debug version, which I was not building.

4
votes

adding armv6 architecture fixed this for me.

2
votes

Happens to me sometimes as well. Doing clean (Product menu -> Clean) and run (Project menu -> Run) always fixes it.

2
votes

I had the same problem: migrated a project from xcode3 to xcode4, and after building the app, xcode did not want to install and start the App on my phone.

My solution (that worked for me) is:

  • Edit your scheme (which is meant to be run)
  • In the list on the left, select 'Run xyz.app'
  • Under the info tab, at Executable I had '.app' selected. Change this by browsing to your build directory and choosing your app.

Worked for me, and from now on I can use: 'Product -> Perform Action -> Run without building', for running the latest build. This is faster then simply pressing Run, as no build actions will be taken.

1
votes

Just restart the device. Do an clean project. Delete the app from the device and Rebuild.

0
votes

Build settings were different for project and targets. I just press suppr on Build Products Path and Intermediate Build Files Path in both sections and it solved my problem.

0
votes

I had the same problem with my game project using Cocos2D. "Hello world" from template worked fine, my project worked fine in simulator, but running failed on device with message: "Finished running".

I've replaced Info.plist in my project by the initial one from template and that worked for me!

0
votes

I experienced this twice with two different apps when moving to the most recent Xcode version. The first time, what worked was compiling the app with the GCC LLVM compiler. The second time, what worked was adding back in the armv6 architecture as a supported architecture since it had been removed when Xcode automatically updated the project.

0
votes

I solved this by changing "accelerometer" from "NO" to "YES" in my Info.plist.

Apple's Information Property List Key Reference says that you can remove the "accelerometer" setting entirely if "your application detects only device orientation changes."

0
votes

My solution was to add UIInterfaceOrientationPortrait to the UISupportedInterfaceOrientations array in Info.plist, even though my app does not support portrait.

0
votes

A field called "Application requires iPhone environment" had made it's way into my plist somehow. I removed it and voila! It ran on my iPod.

0
votes

My Info.plist had it's target membership set to my build target. Removing it from the target membership solved the problem.

0
votes

I was using an alternate name for Info.plist but had not correctly set the Info.plist File build setting on my target. I discovered this by looking at the Application Bundle and seeing that it did not contain an Info.plist.

0
votes

Make sure that the deployment target version is <= the iOS version on your device. This is how i solved this problem.

0
votes

I was having the same problem for about 45 minutes now. Cleaning didn't help, re-creating the project didn't help, the arm version didn't help. I had some "Could not sync to iTunes" messages open that I didn't see before. Clicking OK on those seemed to have fixed the issue :(

0
votes

XCode build, run and finished but the app failed to be deployed and was not even copied to the device.

In fact, there should be something in the XCode project that is broken. The best move is to build a new project from scratch. Don't forget to add armv6 support as stated in a previous post.

It works well for me!

0
votes

This happened to me trying to run a watchOS app on device, because my Apple Watch's watchOS version was higher than my currently-installed Xcode supported. I upgraded to the newest Xcode (which did also require me to upgrade to the newest macOS), and it ran fine after that.