I'm using Xcode 7.3.1, which supports up to iOS 9.3.1.
Now I'd like to check my app on a device on a relatively current version of iOS (10.x), so I added some OS Support folders (using Xcode 7.3.1 with iOS 10 support
), which seems to have worked well.
Now I need the latest OS support folder (i.e. 10.2.1(14D7)). I have checked other StackOverflow answers, but I haven't found one that helps.
Just use Xcode 8. It supports iOS 9 and the latest iOS 10. If you need to keep Xcode 7 in order to run on older iOS versions you can just rename your Xcode to Xcode7 and install Xcode 8 next to it. You can run both of them but it would be wise to do it not at the same time.
Is there any reason that you need to stick to Xcode 7? If you want to support older iOS versions you can download different simulator in Xcode 8. And also, you need to build in latest Xcode to support latest iOS. Xcode 7 doesn't have iOS 10 SDK.
As #MacMark said, you can keep both Xcode 7 and 8 in your mac but I don't see any benefit for doing so.
Related
Recently I updated the Xcode to version 11.2.1 and imported an already developed iOS application with Minimum Deployment target as 7. But when i opened the project in Xcode 11 I can find the Minimum Deployment target as 8.
So how can I extend the support for this application for iOS 7 too
using Xcode 11? If yes, then how?
Is it possible to download the iOS 7 simulator in
Xcode 11 and test it?
Is there any official document which says
the Xcode 11 is not providing support for iOS 7 devices?
how can i extend the support for this application for iOS 7 too using Xcode 11? if Yes then how?
Yes, just type the number into the input.
Is it possible to download the iOS 7 simulator in Xcode 11 and test it?
Never try for long time, but I think it's impossible. But you can test with real device. (You need to copy 7.x directory from old Xcode Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport to the this one.)
Is there any official document which says the Xcode 11 is not providing support for iOS 7 devices?
Not sure.
When do we need to upgrade XCode to newer version? Is it ok if we use older version (.i.e build IPA for iOS 13.1 with XCode 10 or even XCode 9)
(to debug with newer iPhone, iPad is one reason :D)
While you can develop/build/release your app to be compatible with iOS 13 on older Xcode, you cannot add new features that are present in XCode 11 such as dark mode, Sign in with Apple, new simulators (yes, there is a way to add iOS 13 simulators into older XCode but I wouldn't recommend doing it), new code signing, Swift UI and many more.
Also - Sign in with Apple is going to be required for a lot of apps soon so that's a huge push into the new XCode.
You will be able to work with older iOS versions, but at some point you won't be able to run an application for the latest iOS releases (for example iOS13) and also you won't be able to use SwiftUI framework for developing.
Of course you won't have access to new features of Xcode.
If you developing on older version of Xcode then you can not use dark/light mode feature on your app, also in future it's compulsory to build/upload app using latest Xcode version for latest iOS support.
I currently have XCode version 8.2.1.
On my iPhone, I currently have iOS 10.3.2.
My version of XCode will not deploy to anything over iOS 10.2.
On my iPhone, I am being offered an upgrade to iOS 11.0.3.
According to this wiki here, XCode version 9 will deploy to iOS 11.0: https://en.wikipedia.org/wiki/Xcode#9.x_series. But I can't tell whether this includes all the sub-versions, eg 11.0.3.
So my question is, if I get XCode version 9 and upgrade my phone to iOS 11.0.3, will I be able to deploy to my phone from XCode? How do I tell exactly which versions of iOS are supported by each version of XCode? And going forward, how can I ensure that my iPhone and iPad always have versions of iOS which I am able to deploy to from XCode?
Yes, you will be able to deploy to your phone.
While you need Xcode 9 and not 8 to program against iOS11, this question has more to do with the Base SDK and Deployment Target settings in your project.
The Base SDK is the SDK version you are compiling against. In Xcode 9, this could be iOS11, for example. The Deployment Target setting represents the lowest supported iOS version the app will run on. This might be iOS10, per your example, but it could be anything else.
To use the newest iOS11 features, you'd have to have a minimum Base SDK of iOS11. To support older platforms, you must make sure the Deployment Target is set to the oldest version you'd support. In code, you need to check the version of the platform when deciding to use a newer-than-Deployment-Target feature.
if I get XCode version 9 and upgrade my phone to iOS 11.0.3, will I be able to deploy to my phone from XCode?
Yes. Xcode 9 and iOS 11 are both the latest (as of Oct. 2017) versions available. If you want to support iOS 11, you need Xcode 9.
How do I tell exactly which versions of iOS are supported by each version of XCode?
Check the release notes. For example, the Xcode 9 Compatibility section says:
Xcode 9 includes SDKs for iOS 11, watchOS 4, macOS 10.13, and tvOS 11
And going forward, how can I ensure that my iPhone and iPad always have versions of iOS which I am able to deploy to from XCode?
Staying current with the latest iOS and Xcode versions is one way to do that. You don't even need the latest iOS version on your phone -- just any version that's later than the minimum version supported by whatever Xcode you're using. Looking at the list of available deployment targets, I can see that Xcode 9 deploys to iOS versions back to iOS 9.1.
Mostly, just be aware that updating iOS on your phone may require you to also update Xcode.
I am building an iOS app using Swift 2.2, XCode 7.3.1, which is going to go live very soon. I upgraded my iPhone to iOS 10.0 and now when I try to run my code in my iPhone, I am getting the error -
At this stage of my project I don't want to upgrade to XCode 8.0 and use Swift 3.0. Is there any way I can make my code written in XCode 7.3.1 work in iOS 10. My code is working well for iPhones having iOS versions 9.3.2
Thanks
No, Xcode 7.3.1 does not support iOS 10. You cannot. You will have to upgrade to Xcode 8.
And, you should upgrade because it also provides you Swift 2.3 which will help you run latest SDK for iOS 10 etc and the transformation is automatic.
Read here: https://developer.apple.com/swift/blog/
To detect device in XCode you must install software with appropriate version or system will show you the message you have mentioned in the question.
A workaround as per your wish is that every time you make an IPA of your release and install it in the device you want to run with it (that could be a hard time if you deploy several times a day). Remember there is an upward compatibility but no downward compatibility that is if your deployment target is 8 or above you can run the IPA on device having iOS 8 or above but not in iOS 7.
Perhaps you may get some issues on running it on new iOS because of the some obsolete or new features, and to fix that you must upgrade XCode and compile your code on it.
Hope that helps!
Copy the folder 10.0 (14A345) in DeviceSupport folder of Xcode8 to
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
It works for me :)
The iOS 9 update is not supported by Xcode 6.4 for testing purpose. is there a workaround to connect my device to Xcode for testing. If not can I roll back my update to ios 8.4.1( previous update ).
There is a way to deploy to iOS 9 devices with Xcode 6.4. I ended up doing this because I of course had updated my phone right away, but I did not quite want to go to Xcode 7 due to Swift 2 and the lack of support by coacoapods, yet.
Here is what I did:
I downloaded Xcode 7, but did not install it.
Instead I browsed inside the dmg file (Show Package Contents on right-click) to /Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport.
I then copied the folder named 9.0 (13A340) into the same location of my current installation of Xcode 6.4.
Lastly I renamed the existing 8.0 (12A365) folder to just 8.0 - I am not sure if this is necessary.
I am now able to deploy to my phone with iOS9 from Xcode 6.4.
I hope this is helpful to somebody!
The iOS 9 update is not supported by Xcode 6.4
You've hit the nail on the head. iOS 9 is not supported in versions of Xcode earlier than iOS 7. Just update to continue developing.
This worked for me to allow me to test my app that was built against the iOS8 SDK (on XCode 6.4) on a physical iOS9 device.
Rename XCode to Xcode 6.4 in the Applications folder
Install Xcode 7 from the downloaded DMG (don't update from the AppStore)
Open XCode 7 and build a test project (it can be an empty iOS9 app) and run it on your physical iOS9 device
Close Xcode 7 and open XCode 6.4
Build your app against the iOS8 SDK and debug on the physical iOS9 device
It seems like debugging on XCode 7 first updates something on the device and then XCode 6.4 can debug properly.
(This is useful for example, if you don't want to migrate your Swift 1.2 code to 2.0 yet)