IOS: test app old device - ios

When I create an app I want to test my app on old devices (i.e. iOS 3.0).
Can I set up the simulator with older versions of iOS to test my app?

You can change the hardware the iOS simulator simulates, but only if you have the old version of the SDK installed. You can do this by choosing the menu Hardware -> Version and then the 3.x version you want.
Please note this is not the recommended way! The simulator is nice for quickly testing some new features, but the simulator has bugs and other major differences. So test your App always on a iOS 3 device.
Get a first generation iPhone to test on or grab an iPhone 3G and downgrade it to iPhone OS 3. It's not supported by Apple, but Google will help you on downgrading an iPhone to OS 3.

You can change the version in the iOS Simulator.
Hardware -> Version -> []

Related

Xcode 11.3.1 compatibility

I am building an IOS app on XCode 11.3.1 using Swift and would like to know which Iphone models will be compatible with the app. The simulator shows Iphone 8 and above. Does it mean that lower Iphones will not be able to run it?
I can't find a good explanation or a link.
The Xcode version is not the key to supporting older iPhones and their OSes.
Instead, look out for your deployment target. The lower you choose, the more ‘old’ iPhones you get. For example, if you choose iOS 8 as your deployment target, your app will support older devices that can use iOS 8 but not 13.
The simulator only shows a list of devices that supports the newest iOS version supported by the current version of Xcode, but may not necessarily mean that it is limited to those.
Do note that newer APIs be used for the older devices, though you could still make it such that it will work for newer devices, with a fallback to some older APIs just for the older devices.

Possible to publish app on my own device (iPad 1st Generation 5.1.1)

Xcode version 9.1; High Sierra 10.13; iPad (1st Generation) iOS 5.1.1
The iPad I'm using is not a model that is supported by this version of Xcode. Is it possible for me to publish an app for personal use onto my older iOS 5.1.1 device? I prefer not to bust out an older computer to download < XCode 7 to support 5.1.1 (XCode 7 and under are not supported on High Sierra).
No, you cannot install the app on the old versions as Xcode will only support the latest versions that is bind with it. Apple always updates it operating system at that time they also give an update for Xcode and if there is inconsistancy in the version it will not allow to work.
it's only possible if you have an older version of Mac with the older version of Xcode and older version of iPad. (hard to find)... hope this gets you well cheers :)

How can I test my app in an iPhone 4 simulator on OS X?

I am starting iOS development. I have created an application and I am using Xcode 5.0.2, and I'm running the iOS Simulator for an iPhone 5. I want to test my application in the Simulator for an iPhone 4.
Is any tool like Genymotion Emulator (for Android) to run test my application on iPhone 4?
You can choose the version of simulator from Xcode itself. Pls check the image for better understanding
I don't think it's possible in XCode, but if you have a developer account, you can achieve this by using real device.
Change the deployment target in project properties (general tab):
Though with my Xcode 5.1.1, I can only reach the 6.0 as the lowest version.

Cannot simulate any iOS scheme other than 7.0.3 in Simulator

I think the problem first occurred after I updated Xcode to version 5.0.2:
Whichever scheme I set in Xcode - whether it's iOS 5.0, 5.1 or 7.0 - when I build and run the project the simulator always launches my app in an iOS 7.0.3 environment (that's what the simulator's windows title states). So there is no way to test my app for downwards compatibility.
What's the problem here?
Is there some other trick that I need to perform in order to simulate my app in an iOS 5.1 environment?
After searching for solutions for hours I finally found the reason why I cannot select other iOS versions in the Simulator:
It's Mavericks!
In this post in the Apple Developer Forums (Developer account needed to access the forum!) an Apple employee states:
The iOS 5 simulators do not work on OS X 10.9 (Mavericks).
and he says the reason for that is:
The iOS simulator does not duplicate some of the low-level parts of iOS. For example, it uses the host OS X's kernel instead of trying to virtualize the iOS kernel. The iOS simulator requires that these subsystems look sufficiently similar between the simulated iOS and the host OS X. When a new host OS X changes too much it can break old simulators. At that point somebody makes an engineering and cost decision to either update the old simulator or drop support for it.
So if you have installed Mavericks (and do not downgrade if that's even possible) you have no option to run the Simulator with iOS versions < 6.
(If you want to test your app in the Simulator with iOS 6 and 6.1 SDK proceed as the other replies and comments on this page suggest: Go to XCode > Preferences > Downloads and download the corresponding simulator version in the section "Components".)
Check if YourTarget->Build Settings->Deployment->iOS Deployment Target is set to iOS7.0. If so, you need to decrease this value.
You must download to Xcode the iOS 5 SDK for the simulator.
Go:
XCode -> Preferences -> Downloads -> Components
And there you have the option of download the previous simulator.
After that, restart Xcode and before running is just select the version of iOS you want the simulator use:

Simulator iOS 4.2

Is it possible to test an app using the old simulator 4.2 or 4.0?
I downloaded the simulator 4.3 and the "device debugging support iOS 4.9-4.1" from Xcode, clicking on "more simulators", but this only allows me to test on a real device mounting 4.0 or 4.1 that I don't have.
Older versions of the simulator are no longer supported. The Apple stance seems to be if you want to support iOS <4.3 then you need to test on a device, or run an older version of XCode on an older version of OS X.

Resources