Testing on an older iOS version with a real device - iphone

I have a feature that uses the camera so I can test it only on a device, I need to test it on older than iOS 4.3.5, However all of my iPhones are already at 4.3.5.
Is there a way to downgrade the iOS so i could test it on older iOS?

If your device was ever jailbroken, try looking into recovery of SHSH blobs to downgrade your iOS version. Otherwise, I don't know a way to achieve this.

Currently there is no way to do a downgrade to the iPhone OS to an older version unless the phone is jailbroken.

Related

Installing older iOS for device testing

It used to be simpler to test versions of the iOS that were older than the currently shipping iOS. I can't seem to find a way to do it now that Apple calls home when trying to restore a device. If the device is eligible for a more recent iOS, iTunes and XCode 4.5 force you to upgrade the iOS.
In my case, I have an iPhone 4 that I want to test with iOS 5.1.1. I have the .ipsw file that actually was used on this device. iTunes generates an "not eligible" error when I try and force the restore from this .ipsw. XCode 4.5 does also. My understanding is that Apple is no longer signing 5.1.1 and my device is eligible for iOS 6, the reason for the error.
In the past, I had enough devices laying around that I shelved and used for testing. I don't have that luxury now.
Two questions:
1. Is there any way to install an older iOS on device that is eligible for a newer iOS?
2. How are you testing on older iOS versions?
I welcome suggestions
No, you cannot install an older iOS unless you are jailbroken and your SHSH blobs were stored with Cydia or TinyUmbrella.
Most people use the simulator, or older devices.
https://developer.apple.com/downloads/index.action
can be used to find old xcodes and ios SDKs.

How do you test against a specific version when you don't have a device with the version?

I have 3.1.2 device and have used 3.1.2 as minimum iOS requirement for my app.
Now I want to set the minimum iOS requirement for my app to 4.0.
The problem is it seems there's no way I can upgrade my device to 4.0 without jailbreaking.
(and it seems if I jailbreak my device, I won't be able to test IAP)
Hence, I can only update the device's iOS to 5.0, and I won't have 4.0 device to test against.
What do you do when you are in such a situation?
Yes that is a problem, i've faced my self. I still own an iPhone 3G which is still running 4.2.1 and I can down grade it to iOS 4.0 My iPhone 3GS and iPhone 4S are stuck on iOS 5.
I've used testflight to for an open beta to get 20 test with different iOS version, which if it is possible can help a bit. But getting and iPhone 3G or second gen iPod touch might help.
You can install all version of the iOS (up to the one they support) on them since there is real install check done. You might need a tool to finish the installation if it hangs on the final step, but there is no need to jailbreak them.
You may need to buy an old used iOS device running the old OS version which you want to test against. You could sell your other test device with an unusable OS version to help pay for it.

What version of IOS to use when upload app to appstore?

I am just about to upload my first app to appstore :-)
I have tested the app on an iPhone 3G (IOS 4.2) and my iPhone 4. What version of code should i upload and:
If i upload 4.2 to support iPhone 3G, will that cause any problems with newer phones?
If i upload the latest version of the code i guess iPhone 3G's will not be able to run it?
Is it worth while to still support iPhone 3G?
Can someone please recommend me what to do?
If you upload a version that the 3G does not support, then all 3G users will not be able to download the app.
If you upload a version that is supported by 3G, then only if the users have updated their firmware will be able to use the app.
In other words, the role of thumb is: upload the one that is tested on the latest firmware, but can be launched from as many firmware version as possible.
That might mean to just upload the one that is tested on the least firmware possible, but be careful because newer firmware versions might stop supporting certain APIs that you might have used, and then all newer (potential) customers will be locked out of your app.
If i upload 4.2 to support iPhone 3G, will that cause any problems with newer phones?
No.
If i upload the latest version of the code i guess iPhone 3G's will not be able to run it?
You need to compile for arm6 in addition to arm7 architecture.
Is it worth while to still support iPhone 3G?
That's a matter of opinion. This there any requirement for you specific app that requires a iPhone 3GS?
Choosing the latest ios as the deployment version is bad idea. iOS 4.3 isn't supported by Verizon devices, which means that you will lose a big portion of US users.
I believe most of apple's apps are using "iOS 3.1" as the deployment version, and i would recommend choosing the this as the lowest supported version.
iOS 3.1 is the last version supported by the original iphone, which guarantees that all users can use your app. Note it's not enougth to just pick 3.1 as the deployment version. you will have to test it with a REAL 3.1 firmware. There are a few guides on downgrading your iphone to 3.1, which is helpful for testing (such as http://lifehacker.com/5572003/how-to-downgrade-your-iphone-3g%5Bs%5D-from-ios-4-to-ios-313)

A TimeMachine taking my iDevice back to 3.1.2?

My biggest headache now is find a iPhone 3Gs with iOS 3.1.2 on it. iPhone 3Gs is everywhere, but all of them are with iOS 4.1 or even higher.
My question is, is it possible that I get a iPhone 3Gs (with iOS 4.x) and some software package so that I can restore it back to iOS 3.1.2?
Btw by saying 3.1.2 I mean the official non-jailbreaking 3.1.2.
Many thanks,
Di
You would have to have your SHSH's saved with Cydia, then you can downgrade to any version you like (that's supported). With that said, after downgrading, You could always not jailbreak, so it's a legit iOS 3.1.2, but you would have to be jailbroken at one point prior. Other than this, NO, there is NO WAY to DOWNGRADE from any iOS version.
Alternatively, You can try Xcode to downgrade your device as a Developer Device. This would probably be the closest I can think of that Apple would let you downgrade. But it is a longshot.
Just in case you meant 3.1.3 (not 3.1.2), there is this article from lifehacker on how to downgrade from iOS4 to 3.1.3: http://lifehacker.com/5572003/how-to-downgrade-your-iphone-3g%5Bs%5D-from-ios-4-to-ios-313. I used this successfully to downgrade to 3.1.3.
Based on the article, it looks like you could do the same in downgrading to 3.1.2, you just need to find the right image for it.

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 :]