"This device isn't eligible for the requested build." - iphone

I have an iPhone 3GS with 4.3 firmware. I downloaded a 3.1.3 firmware and was hoping to restore the iPhone using Organizer. But! I got the following error:
"This device isn't eligible for the requested build."
Any idea what's wrong?

There is no officially supported way to downgrade the firmware of an iPhone.
Apple only allows upgrading to a later version.

Look up SHSH saving, with utilities such as TinyUmbrella. Its commonly used by jailbreakers to allow rollbacks. Ive been saving my SHSH since it was introduced around OS3.1.x, and it lets me go back to any iOS version from iOS5beta to iOS3.1.3 etc.
This is because apple need to confirm the software update with a SHSH key. TinyUmbrella will save them and spoof them if you want to downgrade later. Although it won't let you go back, you would start saving SHSH's for current iOS builds, allowing rollbacks in the future...

Related

Can I prevent users with a too-old OS version from downloading my app?

I currently have an app in the app store that works for iPhone users running iOS version 3.0 or newer. My next version of the app is going to use ARC, so it will only work for users running iOS version 4.0 or newer.
According to this answer, the users will be able to download the newer version, but it just won't run when they try to run it.
Is there any way to prevent users who can't run the app from even downloading it from the AppStore?
I haven't tested this recently, but in February 2011, and iOS 4.x, I had users who couldn't download my app as there device wasn't running the required version of iOS.
They received a nice explanation message on their device, courtesy of the App Store app, when trying to download the app directly to their device.
I'd be very surprised if this wasn't still the case.
So, set the deployment target in your target build settings, and let the App Store / iTunes take care of who can install it.
That was for new installs, and it be different for updates (rather than new installs) but again I'd be surprised if this wasn't handled by Apple for the sake of a better user experience.
UPDATE
I dug out my old iPhone 3 which reached the end of the road at 4.2.1 and resynced it with iTunes - the latest apps that require 4.3 etc are ignored, and are not overwritten with incompatible versions, as I would expect.
I also tried to update my own app (I'm a developer), requiring 4.3 and above, from the store via the device itself, and got a polite pop-up alert saying the app requires iOS 4.3 and above, again just as I'd expect.
The app was previously compatible with < 4.3, and somewhere along the line I bumped up the minimum iOS version requirement, so it is definitely possible.
So, you should just set your updated app's 'deployment target' version appropriately, and it will only be updated on compatible devices.
No. A new higher minimum Deployment target will prevent a user from installing an app on a device with a lower OS version, but will not prevent them from downloading the app using iTunes on their Mac or PC, even though they can't install the update once downloaded.

Installing previous version of iOS on developer device (currently 5.0 -> want 4.3.5)

I'm a registered Apple dev, and I got a new phone. My old 3GS currently has 5.0 installed on it and I'd like to put 4.3.5 on it for testing apps under iOS 4. I've downloaded the 4.3.5 ipsw, and using Organizer in Xcode I can attempt to install it, but get the "The Device isn't eligible for the requested build" error. The phone restarts and goes to DFU mode.
Am I missing something?
There is no way to go from iOS 5.0 to lower than iOS 5.0 without going into DFU land, that i'm aware of this video. (video on DFU mode - many out there as well.)
From reading, i'm not sure if the user can't get into DFU mode here - if thats the case, that is a bit of a blocker for ya for sure. Maybe re-download fresh itunes and install everything 100% fresh, and try again.
Once it's detectable in itunes after the DFU (assuming DFU can be done),
Download the firmware you desire it to run - 4.3.5 apparently?
Now, make sure iPhone is plugged into iTunes and iTunes recognizes it.
To force new firmware of older version onto the phone – hold shift (PC) or option (MAC) and click restore. This will bring up a browse box where you can select the firmware you wish to push to the iPhone.
This will probably result in a data loss though for anything on the phone before the DFU and firmware push.
Hope this helps, even though this is a few months old now.
You can download older versions of Xcode by logging into Apple Developer Connection Downloads you will need to be a member of the developer program to login.
Here is the website.
Once on the site, from the Downloads section, choose Developer Tools – you will be shown with a list of all Xcode versions, back to 1.0 released in October of 2004.
A quick google for 'xcode iphone downgrade' turned up these instructions.
iTunes will not let you install unsupported iOS versions (i.e. old versions),
regardless if you reset your device or not.
iTunes (as well as older versions of Xcode, like 4.5.x)
will let you choose a specific iOS firmware image (ipsw),
but when you actually get to restore the firmware, you get the message:
"This device isn't eligible for the requested build"
which is confusing, especially if you read Apple's post about this error...
See this short article by chpwn that summarize it very good,
and also adds tips to try go around that:
"...with the iPhone 3GS ... as well as the iPod touch (third generation), the original iPad, and the iPhone 4,
each and every firmware change must be approved by Apple’s servers, at the time of the install.
And Apple will only agree to let you install the current latest release of iOS at that time,
which prevents downgrading — as well as any re-installs of the iOS release the device is running,
as long as that release is not the absolute latest version available."
- from: How to test your app on older iOS releases

Raising minimum iOS Deployment Target Version for App Update

Let's say we have an application with a deployment target set to 3.0 and we want to raise the deployment target to 3.2. Normally, the App Store won't let the App be installed on devices with an IOS version less then this, but what about devices which already had the App installed prior to the update? Will they see the update but won't be able to install, will they just not see the update or, heavens forbid, will be able to install and the app just won't start?
I searched everywhere for this, but I can't find anything about raising the minimum OS version for an app update.
Thanks!
From my experience those updates just won't show up as available.
When I upgraded OS on my device from 3.1 to 4.1 about 10 available updates appeared immediately in App store app - so that should be the actual behavior.
In addition to only showing supported updates, the store now offers the "last compatible version". This lets people download an app even if their device doesn't support the most recent version. Unfortunately this means that some people could still download an older version with bugs you have already fixed. There may be a way to disable this, but none of my app updates have introduced new requirements, so I can not test.
It's nearly a safe bet that they won't be allowed to install it. A similar situation is iPad apps or Mac apps which won't display in the App Store on iPhones and iPods.
I say nearly because the updates should not appear to older users on their iOS devices. The risk, however, is when users sync with iTunes, or if they update with another device. The new version of the app is now associated with their account, and will ruin the install on the older device if they try to sync it with iTunes.

Where can I download iPhone 3.1?

I develop for iPhone, and I want one of my test devices to have 3.1 on it. It is nowhere to be found, at least not on the apple site. Current version is 4.x and that's the only one I can get there, besides I have 10.5 on my MAC so I have no real choice
Does anyone know where I can get this version
It is not possible to downgrade (or even restore to any non-latest firmware) on an iPhone/iPod newer than an iPod touch 2G/iPhone 3G. This is because on the 3GS and newer devices, Apple implemented a system where they must agree to and sign every firmware restore.
You can read more about it here: http://saurik.com/id/12
To get around it, you can save your "SHSH", which is the signature Apple gives you when they approve a restore. To do this, check out TinyUmbrella, but be warned that you can only save it for the latest firmware (iOS 4.2 at the time of writing, since that is all Apple will sign), and cannot use this to go backwards unless you already saved it for your target firmware.
version 3.1 for iPhone 3G/3GS/Touch
You can get all versions from there :]

Updating iPhone application from 3.0 to iOS4

I was just wondering if anyone knows of any articles relating to upgrading an iPhone application from 3.0 to iOS4. (Thanks for this iWasRobbed).
While the application still runs on iOS4, it will not run on the iPhone 4, but does on my iPhone 3G.
When I deploy the app on the iPhone 4, the Default screen loads and it will sit there hanging. The only inclination towards a problem I get is this warning:
warning: UUID mismatch detected with the loaded library - on disk is:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/UIKit.framework/UIKit
warning: UUID mismatch detected with the loaded library - on disk is:
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/PrivateFrameworks/DataAccessExpress.framework/DataAccessExpress
Thanks
James
James,
Apple has provided this checklist: http://developer.apple.com/iphone/checklist/
It generally should not be that big of an issue. Typically, you just set the baseline SDK as 4.0 and the deployment target as either 4.0 or something 3.0+.
If it is not running on an iPhone 4, you may wish to explain further what specifically it is doing or not doing when you attempt to run it on that device. Keep in mind that all apps (for the most part) that were designed to run on 3.0 and above will typically run well on an iPhone 4.
There might be some issues with deprecated methods, so make sure you resolve those prior to installing and running the app. You should get a compiler warning for any of those, if not check your target settings and there should be a checkbox for it.
Other than that, I'm not sure what else would prevent you without understanding further details of your project.
As additional information, you should really look into the WWDC 2010 video called "Future Proofing Your Applications" (watching it now :)
That is most likely a mismatch between what iOS your iPhone 4 is running and what SDK you're using in Xcode. The UUIDs are mismatched because the iPhone 4 is using a different version SDK to what you've coded in.
Solution, install the latest SDK and make sure your iPhone matches this. The latest out is 4.1
I had the same problem and think I have solved it because the problem has gone away.
Firstly I deleted the build folder. Then I Installed the latest version of ios (4.1 in this case) onto my iphone through itunes. Afterwards i installed the latest xcode and iphone sdk package from the apple devlopers site.
This in itself probably fixed the problem but just to be sure I added a new provisioning profile for the phone on my computer and everything worked great afterwards.
Hope that helps