Xcode (iPhone) build warnings - iphone

I just installed Xcode 3.2.3. I have a first generation iPhone that I use for testing purposes. It has 3.1.3 installed on the iPhone. On the build droplist near the upper left, there don't seem to be as many choices as there were on the older version i.e. base SDK to build against. Now there is only Device/Simulator, Debug/Release as choices. When I build and try to install it on the iPhone, I am now getting a warning "The info.plist for application at (the path) specifies a minimum OS version of 3.2, which is too high to be installed on iPhone and get a "can't install application" error. When I look in the .plist, I cannot find where 3.2 is specified anywhere.
Also, there is a build warning of "warning: building with 'Targeted Device Family' set to iPhone only ('1') not supported with SDK 'Device - iPhone OS 3.2'."
What do I need to do to be able to test again? Hopefully I don't have to purchase a new iPhone or iPod touch just for testing purposes.
TIA,
Linda

I use SDK 4 with an old iPod Touch 1st Gen running 3.1.3 and it works fine.
The trick is to set the "iPhone OS Deployment Target" build setting to 3.1.3.

Related

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.

Is it possible to test my iPhone/iPod application on iOS 3.1.3

When building I am getting this error.
The Info.plist for application at /Users/guest2/Documents/MOYMalpha/build/Debug-iphoneos/MOYMalpha.app specifies a minimum OS version of 4.0, which is too high to be installed on iPod touch
I tried to change the verison in Xcode but minimum verison it is showing for iPhone is of 3.2..so what changes I should do to run in iOS 3.1.3
Leave the Basic SDK setting at 4.x. In the Xcode project, in the Build Settings for the Target, look for the iOS Deployment Target setting. Change that iOS Deployment Target setting to 3.1.3, build and test. The build may or may not work if it uses any APIs above the iOS version level on your test device.

iphone - Xcode 3.2.3 refusing to run simulator 3.1.3

I have a project build to work with iPhone 3* and 4. Base SDK is set to 4. Target OS is set to 3. I have an iPhone 3GS with 3.1.3.
Xcode 3.2.3 refuses to install the app on this iPhone. It refuses also to run the simulator.
WHen I try to debug on the device I get "Failed to upload". When I try to debug on the simulator I get a message telling me that "simulator could not find the sdk"...
Any clues?
thanks
I have resolved partially the issue changing the compiler from GCC 4.2 to LLVM GCC 4.2.
Don't ask me why, but now I can install the application on my 3GS running 3.1.3.
The question is: why GCC 4.2 is not working.
At least the solution for this question is this.
To expand on Jason Coco's answer: If
you go to the Project Info screen and
click Build, you can choose what Base
SDK to use (4.0) and then scroll down
to iPhone OS Deployment Target version
and set it to 3.1.3 or whatever.
However, you also have to go to the
Targets section under Groups & Files
(red bullseye) select your target and
get the Info build page, and set your
iPhone OS Deployment Target there too.
Did you do that also? (from the link posted)

Can a user install iphone application developed using 3.1.3 in his iphone 3.0?

Can a user install my application from iTunesStore if he is having iPhone OS 3.0 or having lower version of iPhone OS and I have developed my application using iPhone SDK 3.1.3...
Can anyone help me with this...
Thanx in advance...
In you projects settings, use a build setting named "iPhone OS Deployment Target" to specify your minimal iPhone OS version.
To do that, double click the blue project icon (at the top of the project’s "Groups and Files" table), click the "Build" tab and find the setting in the "Deployment" settings section.
To use features from a later iPhone OS, see this question.
If you compile your application to target iPhone OS 3.1.3 then it will not run on 3.0 - instead the user will get a message telling them to update their OS when they try to install.
However, there's a good chance that you will be able to compile your app to target 3.0 as long as you're not using any specific 3.1+ and newer features. To do so, just change the Active SDK you target in Xcode before you compile. Then your app will run on both 3.0 and 3.1.3
If you set your Target SDk in Xcode to 3.1.3, you may be using features of the SDK not found on an iPhone running a lower OS. However, you can test for those features in your program and take alternative measures if the user does not have those features/frameworks available. There is nothing that will prevent your app from running on older iPhone OSes, other than the fact that using new features will cause the app to fail.
On the other hand, you use the Deployment SDk value of XCode to limit which iPhone OSes can actually run your app. This way you can limit the app to be available to only iPhones with later OS and not the earlier ones. The Apple iTunes App Store will use the Deployment SDk value to tell the user who is purchasing, what the minimum system requirement is too.

Build and test on 2.2.1 iPod Touch with Xcode 3.2.2?

I've just installed Xcode 3.2.2 with iPhone SDK 3.2 Beta 5 (Snow Leopard)
This version of Xcode didn't come with any iPhone SDKs older than 3.0. But I want to create an app that runs on all devices from iPhone OS 2.2.1 -> 3.1.3.
I managed to add older SDKs into Xcode by downloading iPhone 3.1.3 with Xcode 3.1.4 and installing each 2.x SDK from the 'Packages' folder in the .dmg. So now I can select 2.2.1 as 'iPhone OS Deployment Target' and the 'Base SDK' as 3.1.3, and the app will build (thus letting me use 3.1.3 APIs with conditional coding whilst still running on 2.2.1 devices).
But the problem is the app will not install and run on my 2.2.1 iPod Touch. Instead, Xcode tells me 'No provisioned iPhone OS device is connected'. If I bring up the Organizer, in the left column, the iPod Touch has an orange sphere next to it, instead of green, and clicking on this reveals:
'The version of iPhone OS on “iPod touch” is too old for use with this version of the iPhone SDK. Please restore the device to a version of the OS listed below'
I'm not sure how to get this version of the SDK to support 2.2.1.
(It needs to be this download of Xcode/iPhone SDK because I also want it to be a universal binary so it runs on the iPad with a minimum of fuss).
While under NDA, I can't be more explicit than to tell you to read this thread in the Apple Developer Forums, which includes an explanation of this problem.
As far as I know, Apple recently made the 3.x updates available free of charge. I don't think there are any users out there still on 2.x!