I would like to test my app on older versions of iOS. By "older versions" I mean iOS 5.1 5.0 and 4.3. In order to do so, what should I do in Xcode? I've already downloaded (through Xcode) all the corresponding simulators, but I don't know how to build and run my app on a specific simulator. The only choice I have is to run my app on iPhone/iPad 6.0 simulator.
Thanks.
Both of these answers weren't clear enough, I'm adding this to stop people making incorrect assumptions.
The only way to test on a lower version of the iOS is to run it on a device with the lower version or on one of the lower version simulators.
The "Deployment Target", which both answers here incorrectly say runs the app on a lower version, just sets the minimum installed OS version that the app will run on. When you run it on the iOS 6 simulator - it is still running on the version 6, not to whatever your deployment target is set at.
But, without setting a lower deployment target, the option to use a different iOS Simulator isn't available.
Best practice is to build with the latest version and SDK available and set the deployment target to the lowest version that your app supports.
As for running the app on different versions of the simulator - have a look at the dropdown in the top left corner of Xcode - you can pick which of the installed simulators to run your app on from there.
I think your applications deployment target is set to iOS 6.0. Make it to the lowest version you want. I believe iOS 4.3 is the lowest that is possible right now.
To change deployment target,
Select project file in Project Navigation
Click your target
In the summary tab, choose your deployment target.
EDIT: After seeing #Abizern answer.
Well I answered to this part in the question.
The only choice I have is to run my app on iPhone/iPad 6.0 simulator.
OP was not getting older version of simulator to show up in the drop down menu. It was because his project base sdk target and deployment target was set to iOS 6.0. By setting deployment target to a lower version, other simulators started to show up.
But as #Abizern correctly pointed out, to run on a simulator of lower version you have to choose the correct simulator from dropdown menu to run. Well just to make it clear.
Open Xcode and in the menu at the top left, where you select what device to run on, click "More Simulators..."
The download section of Xcode preferences will open,
Click the "Components" tab.
You will see a list of simulators that can be installed, click install on version you need.
The simulator will need to restart to install.
To run the newly installed version of the simulator just select it from the run menu in Xcode.
At the sidebar left, click on the first element of the list(usually is the name of your project). A new menu will open, like my screenshot.
Just select the target that you want to simulate.
Related
Xcode 5 is behaving just fine, and I'm able to build and run apps on my iOS 7 device and in the iOS 7 simulator.
However, I do want to support iOS 6.1, but I don't see any way to build and run the apps for an iOS 6 simulator.
Things wot I've done:
Set Deployment Target to 6.1 for both Project and Target
Downloaded iOS 6 Simulator
Copied the iOS 6 SDK into Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
Reset Content and Settings for the simulator
Originally, I was trying to see the app in the iOS 6 simulator by switching from iOS 7 to iOS 6 in the Hardware > Device menu in the iOS Simulator application, but there aren't any apps in the iOS 6 simulator.
I'm gathering from answers like this one that there should be something I can select before I click Build/Run.
I'd love to be able to see my apps in both iOS 6 and 7 simulators. Any ideas what I'm missing? Here's a LINK to what I see when I click on the simulator dropdown.
Turns out the solution was changing the deployment target for the project from iOS 6.1 to iOS 6.0, upon which the simulator scheme selection immediately showed the option to choose iOS 6 or 7 simulators. Basically the deployment target should match a simulator version that you have installed.
Thanks to random commenters in questions like this one who mentioned that that worked for them.
All you have to do is go to Xcode -> Preferences -> Choose the "Downloads" tab and install the iOS 6.0 Simulator.
Once you're done downloading it, it should show up as an option in your schemes.
Just a little caveat....I tried what you said but it didn't work for me...
Changed Deployment Target on "Project" from 7.1 to 6.0
Then I realised that Deployment Target was still set to 7.1 on the "Target" - once I changed that it worked!
Click to target or project > Build Settings > Achitecture > Supported Plateforms : change to iOS
What I did to get mine working was click on the scheme to the left of where the Simulators usually appear in the dropdown, then choose edit scheme.
A new window will display, make sure that Run is highlighted on the left and then click on the Info tab. Choose the .app file for Executable.
If you are still looking for a solution here's what worked for me:
From the xcode beta's pull down menus, Xcode > Open Developer Tool >
iOS Simulator (if you get a pop up error just dismiss it)
Once in the Simulator go to Hardware > Device > Manage Devices.
Delete everything listed under simulator.
Reboot your machine.
After that navigate back to Manage Devices in the simulator and click the plus to add back
your simulators. Then the iOS 8 simulators will show up.
This might help u out better..you have to copy paste iPhoneOS6.1sdk folder. This is for SDK, similarly instead of iPhoneOS.platform select iPhoneSimulator.platform and then the same path.
Please check whether your "Deployment Target" is higher than the ones available on your simulators.
Xcode5 neither has 6.0 SDK or 6.0 simulator. But what you can do is u can copy both 6.0SDK and 6.0 simulator from your previous Xcodes (xcode4.5 for 6.0 and XCode4.6 for ios6.1) You can find the simulator at /applications/xcode.app/contents/developer/platforms/iphonesimulator.platform/developer/applications/iphone simulator.app
And SDK at /applications/xcode.app/contents/developer/platforms/iphoneos.platform/devicesupport/6.0
Copy the entire folders for simulator and SDK in the exact same path of XCode5.
Note: to go the the Contents of Xcode.app just do a right click on the .app file and you will get an option"Show Contents".
Once u are done copy pasting, restart ur XCode5 and u can see 6.0/6.1 simulator as an option :)
Click on your project root.
Then Go to the Build settings.
Then set iOS deployment target 5.0
Then select iphone6 on top left of your project.
See this image
Solved restoring an older version of the xcodeproj file.
I have Installed Xcode 5. It was just working fine. Now it doesn't show version menu against each simulator.
Before it was displaying all supported iOS versions next to simulator menu.
I want to test my app on different iOS version, how can I change the simulator version.
Just to add, you can actually download old versions of the simulator with Xcode5 itself - just go to preferences and you'll find them under Downloads:.......
No need to download the zip if you only wanted to change the deployment target.
Here are some screenshots.
In Xcode 5, Preferences -> Downloads -> Components to install additional simulators (if you have not done so already).
Possible issues:
Set the deployment target. If the target is set to iOS 7.0 then you cannot choose
between different simulators. If the target is set to iOS 6 then you should be able
to choose between the simulators.
Check in the Download preferences if iOS 6 Simulator is installed (you may have to
re-install it after upgrading to Xcode 5).
Xcode on Mavericks does not support the iOS 5 Simulator anymore.
Go to xcode click show package content and see if simulator sdk's are there at path "/Applications/Xcode_5.0.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs" if not either download them or copy paste from previous xCode from same path of old xcode
Restart xCode.
Check your Base SDK setting in project setting. Set to lower version and you should be able to see all possible simulator configuration.
Xcode 5 is behaving just fine, and I'm able to build and run apps on my iOS 7 device and in the iOS 7 simulator.
However, I do want to support iOS 6.1, but I don't see any way to build and run the apps for an iOS 6 simulator.
Things wot I've done:
Set Deployment Target to 6.1 for both Project and Target
Downloaded iOS 6 Simulator
Copied the iOS 6 SDK into Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
Reset Content and Settings for the simulator
Originally, I was trying to see the app in the iOS 6 simulator by switching from iOS 7 to iOS 6 in the Hardware > Device menu in the iOS Simulator application, but there aren't any apps in the iOS 6 simulator.
I'm gathering from answers like this one that there should be something I can select before I click Build/Run.
I'd love to be able to see my apps in both iOS 6 and 7 simulators. Any ideas what I'm missing? Here's a LINK to what I see when I click on the simulator dropdown.
Turns out the solution was changing the deployment target for the project from iOS 6.1 to iOS 6.0, upon which the simulator scheme selection immediately showed the option to choose iOS 6 or 7 simulators. Basically the deployment target should match a simulator version that you have installed.
Thanks to random commenters in questions like this one who mentioned that that worked for them.
All you have to do is go to Xcode -> Preferences -> Choose the "Downloads" tab and install the iOS 6.0 Simulator.
Once you're done downloading it, it should show up as an option in your schemes.
Just a little caveat....I tried what you said but it didn't work for me...
Changed Deployment Target on "Project" from 7.1 to 6.0
Then I realised that Deployment Target was still set to 7.1 on the "Target" - once I changed that it worked!
Click to target or project > Build Settings > Achitecture > Supported Plateforms : change to iOS
What I did to get mine working was click on the scheme to the left of where the Simulators usually appear in the dropdown, then choose edit scheme.
A new window will display, make sure that Run is highlighted on the left and then click on the Info tab. Choose the .app file for Executable.
If you are still looking for a solution here's what worked for me:
From the xcode beta's pull down menus, Xcode > Open Developer Tool >
iOS Simulator (if you get a pop up error just dismiss it)
Once in the Simulator go to Hardware > Device > Manage Devices.
Delete everything listed under simulator.
Reboot your machine.
After that navigate back to Manage Devices in the simulator and click the plus to add back
your simulators. Then the iOS 8 simulators will show up.
This might help u out better..you have to copy paste iPhoneOS6.1sdk folder. This is for SDK, similarly instead of iPhoneOS.platform select iPhoneSimulator.platform and then the same path.
Please check whether your "Deployment Target" is higher than the ones available on your simulators.
Xcode5 neither has 6.0 SDK or 6.0 simulator. But what you can do is u can copy both 6.0SDK and 6.0 simulator from your previous Xcodes (xcode4.5 for 6.0 and XCode4.6 for ios6.1) You can find the simulator at /applications/xcode.app/contents/developer/platforms/iphonesimulator.platform/developer/applications/iphone simulator.app
And SDK at /applications/xcode.app/contents/developer/platforms/iphoneos.platform/devicesupport/6.0
Copy the entire folders for simulator and SDK in the exact same path of XCode5.
Note: to go the the Contents of Xcode.app just do a right click on the .app file and you will get an option"Show Contents".
Once u are done copy pasting, restart ur XCode5 and u can see 6.0/6.1 simulator as an option :)
Click on your project root.
Then Go to the Build settings.
Then set iOS deployment target 5.0
Then select iphone6 on top left of your project.
See this image
Solved restoring an older version of the xcodeproj file.
I have an old iOS app that I never distributed and am now trying to work on the project again. It worked fine with an earlier version of Xcode but I was not ready to deploy it at that time. Now I am using the current version of Xcode but I have an error that there is a missing base SDK. I have explored every posting here with that error message and they did not work for me.
On investigation in Xcode. I can choose my app under "Project" pane. With the Info tab chosen, it has under Deployment Target as "Mac OS X Deployment Target" and Default in the drop list.
This is an iOS app and not a Mac OS X app. How do I change this?
I already have the base SDK as the Latest iOS.
Suggestions?
Try this:
Open Xcode and Press cmd + 1
In left panel choose your project -> Your target in center panel-> Build Settings in right panel
Find "Base SDK" and choose "Latest iOS". If you see a Release and Debug lines, then choose this for both Release and Debug.
Restart your Xcode
Usually when you see this, it's when you've got an old iOS project and you're using a version of Xcode that uses a newer base iOS. In those cases, you can click on the target on the top of the tree structure of the Project Navigator on the left, and you'll see the project settings. There's a button labelled "Validate Settings" and will show up near the lower center portion of the main panel. Click on it.
If that doesn't do it (e.g. it's from a really old version and Xcode can't figure out how to remedy it), it might be easier to recreate the project. Create a new iOS project and then copy your source code, its NIBs and resources into that project. Maybe that will be easier than trying to fix the old project you have.
I'm thinking of upgrading to iOS SDK 4.2. But what I'm wondering is if I'll still be able to run the simulator as iOS 3.2. This is because I'm creating iAds for iPad but I still want to check if my program will run with iOS 3.2.
Note: I have seen a similar post to this in the past, but they weren't really helpful in giving the exact steps in how this could be done.
To anyone else who finds this older question, you can now download all old versions.
Xcode -> Preferences -> Components (Click on Simulators tab).
Install all the versions you want/need.
To show all installed simulators:
Target -> In dropdown "deployment target" choose the installed version with lowest version nr.
You should now see all your available simulators in the dropdown.
XCODE 10.1
1. Goto Xcode -> Preferences (Shortcut CMD,)
2. Select Components
3. Download Simulator version
4. XCode -> Open Developer Tool -> Simulator This will launch Simulator as stand alone application
5 Hardware -> Device -> Manage Devices...
6. Click on + iCon to create new simulator version.
7. Specify Simulator Name, Device Type and Choose OS version from drop down.
8. Click Create.
9. Hardware -> Device -> iOS 11.0 -> iPhone 6
Thats it run enjoy coding!
If you have iAds in your binary you will not be able to run it on anything before iOS 4.0 and it will be rejected if you try and submit a binary like this.
You can still run the simulator from 3.2 onwards after upgrading.
In the iPhone Simulator try selecting Hardware -> Version -> 3.2
Xcode 14:
Xcode -> Preferences -> Platforms
Then click the + button
Open xcode and in the top menu go to xcode > Preferences > Downloads and you will be given the option to download old sdks to use with xcode. You can also download command line tools and Device Debugging Support.
In XCode under Targets, right-click on your project and Get Info. Under the Build tab look for iOS Deployment Target. By changing this you should be able to test different iOS version.
I was searching for how to do this on a much newer version of xcode than the original question and while the answers here got me where I needed to go, they aren't quite accurate for location anymore. Xcode 11.3.1, you need to go into Preferences -> Components, then select the desired Simulators. You can also select tvOS and watchOS similators from the same window.
To add previous iOS simulator to Xcode 4.2, you need old xcode_3.2.6_and_ios_sdk_4.3.dmg (or similar version) installer file and do as following:
Mount the xcode_3.2.6_and_ios_sdk_4.3.dmg file
Open mounting disk image and choose menu: Go->Go to Folder...
Type /Volumes/Xcode and iOS SDK/Packages/ then click Go. There are many packages and find to iPhoneSimulatorSDK(version).pkg
Double click to install package you want to add and wait for installer displays.
In Installer click Continue and choose destination, Choose folder...
Explorer shows and select Developer folder and click Choose
Install and repeat with other simulator as you need.
Restart Xcode.
Now there are a list of your installed simulator.
Choosing older simulator versions is not obvious in Xcode 3.2.5. Older Xcodes had separate lists of "iOS Device SDKs" and "iOS Simulator SDKs" in the "Base SDK" build setting popup menu, but in Xcode 3.2.5 these have been replaced with a single "iOS SDKs" list that only offers 4.2 and "latest".
If you create a new default iOS project, it defaults to 4.2 for both Base SDK and Deployment Target, and in the "Overview" popup in the project's top-left corner, only the 4.2 Simulator is available.
To run an older iOS simulator, you must choose an older iOS version in the "iOS Deployment Target" build setting popup. Only then will the "Overview" popup offer older Simulators: back to 4.0 for iPhone and to 3.2 for iPad.
Xcode (14.1v) -> Settings -> Platforms -> + Icon
The simulator CANNOT be downloaded from:
Xcode -> Preferences -> Downloads
Only the iOS devices symbols. As this option says:
This package includes information and symbols that Xcode needs for
debugging your app on iOS devices running versions of iOS prior to iOS
4.2. If you intend to debug your app on a device running one of these versions of iOS you should install this package.
That is, you need an iOS 4.2 device to test an iOS 4.2 application