Installing iPhone app on iPhone - iphone

I want to install my iphone app on iphone and also have test provisional profile also. The main problem is that i developing applicaion in mac lion environment Xcode version is 4.2.1
and using iOS5 i want to install it on device iPad 4.3.1 (iOS 4) so it gave me error message on Xcode
The run destination iOS Device is not valid for Running the scheme 'myProjectName The scheme 'myProjectName' contains no buildables that can be built for the SDKs supported by the run destination iOS Device. Make sure your targets all specify SDKs that are supported by this version of Xcode."
What should i have to do for it?

That is because you are using iOS 5 as your deployment target. Go to build setting and set the deployment target as per your need.

In your project settings check for the valid architectures. You need to include both armv6 and armv7 architectures.

Check the Targeted Device Family and make sure the device your distributing to is included in the settings

Please check it with setting deployment target.

Related

Building/Running IOS 5.0 from xcode on 4.3.3 Device

I am trying to run an application in xcode 4.2 to IPhone 4.3.3. All what I see to run against are:
IOS Device
IPad 5 Simulator
Iphone 5 Simulator
I tried to change my Code Signing, but still did not work. I am getting this message:
"Xcode cannot run using the selected device.
No provisioned IOS devices are available with compatible
IOS version. Connect an IOS device with a recent enough version
of the IOS to run your application or choose an IOS simulator
as the destination"
I already have the provisioning already setup successfully for my IPhone 4.3.3.
Thanks in advance.
Select the Project's Target. Under the Summary, make sure the Deployment Target is set to the lowest version you want to support (4.0, 4.3.3, whichever you prefer).
Look at Deployment Target Settings in Build Settings. Set it to 4.3
Make sure your iOS deployment Target is set to iOS 4.3 or less

Is it possible to target older iOS versions when using Xcode 4.2 and iOS 5 SDK?

I just recently downloaded the Xcode 4.2 with iOS 5 SDK package and I immediately noticed that I am unable to use my iPhone 3Gs with iOS 4.2.1 for debugging. I am only able to debug and test on my iphone 4 with iOS 5 installed.
For any of my devices running any iOS less than 5.0 Xcode just says "Finished running for iPhone3GS" and doesn't run it. I have my deployment target set to 3.0 because I am not using any features in my app above 3.0 and I want to be able to target all versions 3.0 or higher. I have all my provisioning profiles installed and up to date.
I have quit and restarted xcode, I have cleaned the build multiple times. I have tried adding armv6 in the archtecture build settings, but nothing will allow me to build and run my app on my old phone with ios 4.2.1.
My question is, is it possible to still make apps with the new SDK work for iOS versions lower than 5? How can I be sure that my app will still run on lower iOS versions if I am unable to install them on my old phone?
Edit:
OK it looks like iOS SDK 5 dropped support for armv6 by default. What you have to do is add armv6 in the Architectures field under Build Settings for both your Target and your Project. Then your app will be able to run on iPhone 3G devices.
Answer can be found here
How to build for armv6 and armv7 architectures with iOS 5
I was having the same issue trying to get a newly created Xcode 4.2 project running on an iPhone 3G 4.2.1. Here is how I was able to get it to run.
1) Change the Target's "Build Settings" ==> "Architecture" from "Standard (armv7)" to "other". Add armv6 and armv7.
2) Change the Target's "Build Settings" ==> "Valid Architecture" to armv6 and armv7.
3) Change the Target's "Build Settings" ==> "iOS Deployment Target" to iOS 4.2.
4) Open the projects *-Info.plist, remove the setting "Required device capabilities" (note it required armv7)
btw I figured this out when I tried to manually add the app via the organizer and it reported:
Can't install application
The Info.plist for application at /Users/.../TestsDebug.app specifies
device capability requirements, which are not met by Dev iPhone 3G
All should work after that. Talk about a PITA.
Go to Xcode > Preferences > Downloads and install debugging support for older iOS versions.
mmorris got me close to resolving the issue...
In the Info.plist, I had to set the Required Device Capabilities to armv6, not armv7
Hope this helps others out as well.
You need to connect the phone and then go to the organizer. Xcode should automatically request the older version.
See the developer page for more info. It was described in the notes for the 4.2 beta
I encountered a similar problem trying to run my app on an old iPod Touch. I upgraded to Xcode 4.3.3 and the app would no longer run in the debugger for me on older hardware.
I believe the other comments here about "Architectures" and "Required device capabilities" are important details to specify correctly. Unfortunately, they weren't enough to fix my problem.
In my case, I found the build scheme to be the culprit. Xcode 4.3.3 prompted me to switch from the GDB debugger to LLDB when it upgraded my project. When I changed the Run action of my scheme back to GDB, I was able to run the app again on my old hardware from Xcode.
I found out that I had to add armv6 to architectures, but still did not work. And now I have removed armv7 from required capabilities, and that was it! It worked!
This worked for me and should work for you if you had an older version of Xcode previously. If not then you should follow the advice given by others to obtain the SDK from an older version of SDK:
sudo cp -a /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk
This command is only a little bit different from that shown by others, but those commands dropped the files in the SDKs folder itself for me - we want a subdirectory of it to be created with the appropriate name.
In my case there was a redundant line
in Required device capabilities
I just removed it...
Hopefully it will help someone else.

Base-SDK of v4.0 means it won't install on 4.1 or 4.2 devices?

I was using xCode v3.2.3 and SDK 4.0 to write iPhone apps that worked on my iOS v3.1.3 device... as well as v4.0. (Deployment target set to 3.1.3. Base SDK set to v4.0)
Does that mean everyone that uses my app will need a minimum of iOS 3.1.3 and a maximum of v4.0? Or will they also run on v4.1 and v4.2?
Second part of my question:
I now upgrade my iOS v3.1.3 to v4.2.1.
Xcode now says my v4.2.1 device is now no longer provisioned.
Doesn't a Base-SDK setting of v4.0 mean apps will also run (or at least install) on v4.x?
No. Base SDK just means that your app will be built against the iOS 4.0 libraries. Any 4.x device will be able to run a release build of your app, but for debugging, Base SDK and the iOS version on your device must match. In the end, you need to build your app with the newest available Base SDK anyway, because Apple won't accept apps built for older SDKs into the App Store.
No, they will. iOS has Backward compatibility.
I agree with Irene. I found the solution:
The hint came from here: Can't make Xcode 4 run a barely empty project using SDK 4.2 (runs fine in 4.3)
And this is how i resolve: my xcode 4.0 my SDK 4.3 and my Ipod touch device is 4.2.1 - You see it is backward compatible. There are 2 things you must do in order to resolve. 1) In your xcode 4.0, You click on your project name under Target to ensure you change the target not the Project setting. Find the row >IOS deployment target to the version of your device in my case it was back to 4.2.1 ipodtouch so i set 4.2 (do not worry about basesdk it is for your application not the same as your application's target. 4.3 basesdk requires you provide codesign so you have to select code sign if do not have one apply for one looking up in Apple website or google)
After setting your target to compatible version with your device you now can go to "set the active scheme" that is where you select which device to install and run on including the simulator. So you will find you device there select it and you are good to go.
And if you still can not get it going. You can try to select your project under Project this time adn set the ios deployment target to your version mine was 4.2 ipodtouch ios. Then go select "set the active scheme" that is where you select which device to install and run on including the simulator. So you will find you device there select it and you are good to go.

''Install Prohibited" iphone SDK

I am a registered Apple dev with the certificates, and mobileprofiles that i need. I have made several apps in xCode that I would like to test on my 3GS, I have registered my 3GS as one of my allowed devices but it still will not install giving the install prohibited error. The Xcode is set to same profile as my iphone has. Just dont kmow what to do. well i guess i =ll download sdk 4.1
You will get this exact message if Restrictions are enabled on the device, specifically the restriction on installing Apps.
You need to upgrade your SDK to 4.0.1 to use it with iOS 4.0.1 devices.
Is the iPhone OS Deployment Target in your Build Settings (either for the project or for the target) set for an OS version higher than the one on your 3GS?

Building/Testing a Universal iPhone/iPad application

I have a project configured (I think) to produce Universal binaries. The base SDK is set to 3.2 and the Deployment Target is set to 3.1. Target Device Family is iPhone/iPad and the architecture is armv6 armv7.
I had a few questions about how this Universal binary thing really works:
1) When I want to submit an app binary for review, what configuration should I set as the build target? If I set it as "Device - 3.1" I get a warning which says "warning: building with Targeted Device Family" that includes iPad('1,2') requires building with the 3.2 or later SDK". However, if I build with SDK 3.2, will it still run on iPhones with OS 3.1?
What's the right configuration for device and architecture (arm6/arm7)?
2) How do I test the scenario above (built with SDK 3.2, but installed on a device running OS 3.1)? If I build with SDK 3.2, when I try to install it on a phone with OS 3.1, I get an error saying that the phone's OS isn't updated.
Thanks!
Our first Universal App just got approved and released in the App Store today, so here are the settings we successfully used:
Architectures
Architectures: Optimized (armv6 armv7)
Base SDK: iPhone Device 3.2
Build Active Architecture Only: unchecked
Valid Architectures: (empty)
Deployment
Targeted Device Family: iPhone/iPad
iPhone OS Deployment Target: iPhone OS 3.0
(you can set this to any iPhone 3.x OS but we wanted to target the oldest devices possible. This must be 3.0 or above, 2.x is not valid for a Universal App.)
Make sure that you'd also checked these settings for the Target itself (Project->Edit Active Target "AppName"); my initial problems when uploading to iTunes Connect were because the iPhone OS Deployment Target for the Target itself was still set to 2.2.1.
So, the key seems to be that the "Architectures" setting be set to "Optimized (arm6 arm7)" in addition to the "Valid Architectures" setting being set to "armv6 armv7".
This allows it to compile with the 3.2 SDK and run on an iPhone running 3.1
The settings I have in my question, in addition to this above change, seems to be what's needed to configure the app for submission as a universal binary. I haven't done it yet, but I'm fairly confident.
Please correct me if I'm wrong.