How to rollback iPad OS 3.2.2 to 3.2 - ios

How to rollback iPad OS 3.2.2 to 3.2 for development purpose.

I downgraded from iOS4 to iOS3.1.2 on my iPhone 3G and iPod Touch, by downloading the OS off the internet and pressing alt (or it might have been Shift) while clicking the upgrade or restore button (in iTunes) and then in the open File Dialog which follows browsing to the downloaded Firmware.
Apple blocked me from restoring to 3.1.3 though.
I doubt this illegal as it's built into iTunes.

There is not supported way to do this. It might be possible using Jailbreak tools, but I'm not familiar with them.
I had the same issue. I was using my iPod Touch as a 4.0 beta device, but now that 4.0 is gold and I put it on my 3GS, I wanted to use the iPod as a 3.1.3 compatibility test device. Once Apple removes support for a specific version, iTunes and XCode will no longer let you install or update to an outdated version.

You can't. But not exactly for the reason Chris specifies -- if it were just down to Xcode or iTunes, one could always keep old installers around and just use those to do rollbacks. The real reason is the device doesn't allow itself to take an older version of firmware than what it already has.
This is a "gotcha" that seems to get every developer at least once. Consider it a rite of iOS development passage. :)

Related

Using latest version of Xcode 8, support and test on for iOS 5.1.1

I have been searching for an answer for this for a while now and I can't seem to get a straight answer anywhere. I'm new to iOS development and am looking to get started porting my android app over to make my first iOS app. I'm not a big apple user, so I'm just running xcode in a VM and trying to build and test on my old ipod touch 3rd generation running iOS 5.1.1. I understand how out of date this is, but I want to develop and test on this device for 2 reasons:
I dont want to buy a $750 new apple product just to test my very simple app
When I publish my app, I want to reach the most users possible
So my question is this:
In xcode 8, is it possible to develop applications with a deployment target of iOS 5.1.1?
If so, will it build for all versions of iOS?
When I attach my ipod to xcode, it says device is not supported, can I fix this by installing some 5.1.1 developer package or sdk to allow support? Or would I have to build, then manually install and test each iteration?
If all of these are possible, and I build an app targeted to 5.1.1, can I publish it to the app store? If I open the app store on my 5.1.1 ipod, there are still apps in the store with recent update dates, so people must still be releasing updates to apps on iOS 5.1.1 right? Or am I missing something and an app that runs on iOS 5.1.1 is entirely banned by Apple.
A lot of questions, but If possible I really want to do this. Even getting a fully known, confirmed answer for ANY of these questions would be greatly appreciated.
Thanks
I dont want to buy a $750 new apple product just to test my very
simple app
Xcode has a simulator, you don't need a device to test your app.
When I publish my app, I want to reach the most users possible
As of July 31th 2017, https://developer.apple.com/support/app-store/
86% of devices are using iOS 10.
11% of devices are using iOS 9.
3% of devices are using earlier. (probably iOS 8)
It makes sense that you have this concern coming from Android, but iOS is quite different. Devices are designed to be uniform and apple encourages (almost forces) people to update them. (You won't stop receiving a notification to update your device)
It would actually be bad to focus on developing for that specific device you have, specially because a lot of the APIs will be deprecated, plus the screen ratio of that specific device is not so common.
In xcode 8, is it possible to develop applications with a deployment
target of iOS 5.1.1?
No*
If so, will it build for all versions of iOS?
Kind of, it will run but it won't probably be what you expect until you FIX it for that specific iOS version. (many things break between iOS updates so developers are sometimes forced to branch code)
When I attach my ipod to xcode, it says device is not supported, can I
fix this by installing some 5.1.1 developer package or sdk to allow
support? Or would I have to build, then manually install and test each
iteration?
Maybe, but probably not. You can actually copy files from older xcodes to enable testing in newer ones. You can search about how to do this by googling for "Using iOS 7 in Xcode 8". However I doubt going as far back as iOS 5 will be possible. The Xcode needed for running on iOS 5 is not even supported macOS Sierra (The newest OS)
If all of these are possible, and I build an app targeted to 5.1.1,
can I publish it to the app store? If I open the app store on my 5.1.1
ipod, there are still apps in the store with recent update dates, so
people must still be releasing updates to apps on iOS 5.1.1 right? Or
am I missing something and an app that runs on iOS 5.1.1 is entirely
banned by Apple.
Theoretically yes, iOS Apps can still "support" old iOS version, the reason why developers drop support for older os is because it gets increasingly hard to debug them as well as they just don't have support for new features and APIs that come with newer iOS.
My suggestion if you are really obsessed with building for iOS 5.1.1 is to ensure it's a 64 bit app:
https://developer.apple.com/library/content/documentation/General/Conceptual/CocoaTouch64BitGuide/ConvertingYourAppto64-Bit/ConvertingYourAppto64-Bit.html
And Download an old version of Xcode: (Maybe Xcode 7 or 6?)
https://developer.apple.com/download/more/
But I think you still have to Build with xcode 8 since you need to build against their latest SDK. The old Xcode is just to develop for it and facilitate debugging.

Version Requirements for iOS development

I am an experienced developer starting on my first iOS project. I am comfortable with the hardware and software that I will be using, but confused about the dependencies between the various components to achieve what I need to do.
Here's what I have:
iMac 21.5 inch, i5 processor 2011 vintage
OSX 10.7.5
XCode 4.2.1
iOS SDK 5.0/4.3/4.2
iPhone 4 running iOS 7
I first became aware of a problem, when XCode refused to let me download the app I am developing to the device. Presumably because I am targeting iOS 5, while the phone is on iOS 7.
I am hesitant to rush off and upgrade everything, as I am aware with Apple this is often a one-way street. For example, I bought the iPhone second hand that the vender had already upgraded to iOS 7, and now I cannot downgrade.
Here's what I want to be able to do:
Use my current hardware for development
Publish new apps in the App Store
Test my app on my iPhone (and preferably older models also)
Support iOS7 plus as many older iOS versions as possible
If possible, have the app use older controls styling (-iOS6) on iOS7
Can someone help me with my thought process through the various dependencies, and what versions I am going to need to achieve these aims?
You'll still be able to develop for iOS6 and earlier if you have the latest version of XCode, just set your deployment target accordingly. With XCode 5 though Apple stopped including the iOS5 simulators and earlier, so you would have to manually download it and include it if you wanted to use that.
Note that to develop with a real device (not just on the Simulator), you need to have an Apple Developer license and have added the device through the Developer portal.

Can I release a bug fix to a previous version of an iOS app through iTunes Connect?

Here's the situation: I have just released a minor version (3.5.3) of my app that still supports iPhone 3G (iOS 4.2), but I will soon be releasing a major version (4.0) that requires iOS 4.3 and up, so iPhone 3G will no longer be supported from 4.0 onwards.
I'd like to know if I can continue to support the 3.5.x version in the future by releasing updates to that e.g. 3.5.4 - will iTunes Connect understand that this is an incremental release to 3.5.3 and thus not offer it to those on 4.0? Does it understand that 4.0 will always be > 3.x? Or can there only ever be one version active at a time? Seems that way...
If the latter is true then I guess the way round it would be to submit 2 new versions - 3.5.4 and 4.0.1 - and release the 4.0.1 immediately after 3.5.4.
Has anyone had experience of doing this?
I'd obviously like to avoid this scenario if possible, but I don't want to have to leave my 3G customers in the lurch if something serious comes up.
Not unless you submit the new 4.3 version as a different app entirely (ie. not an upgrade to the original app).
If you submit the 4,3 app as an update, then the old app will be overwritten and no legacy support can be provided for it.
Users that haven't updated to 4.3 or are using older hardware simply won't be notified that your app has been updated until they update their OS or hardware.
I also think that if you do try to submit two separate versions of the same app, with the only difference between small feature changes and an OS requirement, then one of them will be rejected.

When updating to iPhone OS 3.0, will older apps be compatible?

I am currently working with a device that has iPhone OS 2.2.1.
And as You all know that the OS 3.0 update is available for download.
I have downloaded the update and also read many comments on it.
I have developed all my apps on OS 2.2.1.
Just to confirm, if I install 3.0 on my device will the apps be compatible.
If not then can I roll back to 2.2.1? If rolling back is possible then how can I roll back?
Are your Apps for sale in the App Store? Or are they private apps? Apple won't approve any that aren't 3.0 compatible now, but I'm pretty sure all 2.2.1 apps work on 3.0.
With the iPhone simulator, you can test for different versions. With the device, there is no easy way to roll back to 2.2.1.
To answer your question about downgrading, I did exactly this process yesterday, downgrading my iPod Touch 2G from the 3.0 GM firmware, down to 2.2.1.
First of all, you need to get hold of the 2.2.1 Firmware. There are links list on http://www.blogsdna.com/2264/iphone-firmware-221-and-ipod-touch-firmware-221-released.htm
If you download the zip file and there is a .zip filename suffix, simply remove the '.zip' portion from the filename. Do not unzip the file. The ipsw file uses zip to encapsulate the various files associated with a firmware upgrade.
Next, you need to connect your device to your Mac, and place it in DFU mode. This involves holding down the home and power buttons until the device powers off, and then lifting your finger off the power button, but keeping it on the home button for a few seconds, and then releasing. This is a little tricky, so have a look at the various articles written on the topic. It took me a couple of times to get it right.
Once you've put the device in DFU mode, you can use Xcode's Organizer window to load the 2.2.1 firmware onto the device. Go to the Software Versions menu, and select Other Version.... Then browse to your downloaded 2.2.1 firmware file, and click Open, and then click Restore [device].
Maybe you can downgrade with the pwnage tool.. but I'm not sure.. anyway you can try to downgrade to 2.1 and see what happens..

Install old iPhone OS on development device

I want to roll back an iPod Touch 2nd gen from the 3.0 OS to the 2.2.1 release so I can test my application on there. The documentation lists the OSes as being available on the dev center, but I'm unable to find them but for the 3.1 beta's. Did Apple just hide them where I didn't look, or are those files not available anymore, and if so, is there an alternative to rolling back the device?
I've found a site that is an interface to Apple's update feed, listing all the available firmwares for both the IPod touch and the IPhone. Using the XCode Organizer it is then possible to load new firmwares unto the development device, however, to downgrade it is necessary to put the device into DFU mode
Same question over here:
http://discussions.apple.com/thread.jspa?messageID=9655781
Basically you have to find the 2.2.1 software yourself. That's why I always keep my copies of firmwares.
The first thing to note is that rolling back to older releases is not officially supported.
Perhaps because of this, downgrading is not a simple point-and-click exercise. I found a guide here. Most of the complexity is around the iPhone baseband firmware which shouldn't be a problem with the iPod touch.
If you Google around you can usually find these.
Apple tries to hide them because they are paid updates (grr).
For iPhone users: http://www.poorlad.com/iCommunity/

Resources