Build w/ iOS 9.x SDK, debug on ios 10.x device? - ios

I have an app which, due to some serious compatibility issues, I'm still building with the iOS 9.x SDK. Making modifications to get it to compile with the 10.x SDK would be a large undertaking. So, I've just been using Xcode 7.
The problem is that because of this, I can't effectively debug on iOS 10.x devices, as (of course) XCode 7 doesn't recognize iOS 10 devices.
Is there any way to get the best of both worlds? E.g. run XCode 8, debug on iOS 10.x devices, but build using the iOS 9.x SDK?

Discovered this answer which does the trick. I successfully used this method, built using the iOS 9 SDK using XCode 8, and the resulting binary was accepted into the App Store. One small note, I had to use Application Loader to upload the binary to iTunes Connect, as I was getting unexplained errors when trying to upload directly from the XCode Organizer. Not sure whether that had anything to do with the older SDK, but just in case, figured I'd mention it.

Related

All iOS apps submitted to the App Store must be built with the iOS 15 SDK or later, but our iOS SDK is already of version 15.2

I have found similar questions in this and this articles, but neither can solve my problem.
The message given by Apple Store Connect was also "ITMS-90725: SDK Version Issue - This app was built with the iOS 14.4 SDK. All iOS apps submitted to the App Store must be built with the iOS 15 SDK or later, included in Xcode 13 or later."
However, I have checked that I am using xcode 13.2.1 which works with iOS 15.2 SDK, running on macOS Big Sur 11.6.4 (well.... a 2015 iMac, kind of old though). I believe it is capable of building a project with iOS 15.2 SDK, but I just can't find where I shall tune (if necessary) to avoid it keeping using iOS 14.4 SDK to build my project. Could you please help me solve the issue? Thank you very much!!
The figures below show the environment I mentioned above:
Looks like you have multiple Xcodes installed, please make sure you have selected the correct version for your Command Line Tools
I found that it was an embarrassing reason which caused the problem I raised above. I think I am responsible for showing what was going on to all who have read this post, and especially to those who had paused to think about this issue.
In short, Xcode 13.2.1 does build the app using iOS 15.2 SDK.
I was able to successfully archive, verify in Xcode, and uploaded the binary to app store connect. However, I was not familiar with the app store connect and did not aware that there was another binary built with iOS 14.4 SDK which was left by my predecessor.
Though I tried several times rebuild and re-upload, I kept falsely submitting the old binary to Apple's reviewer.
That's it, and no bug or secret about Xcode using older version of iOS SDK to build apps, it is just not true. Xcode does build using its latest SDK. Again my apologies to those who also worried about this issue.

What's the correct way in making an iOS 9 app backward compatible with iOS 6?

I am trying to create a simple webview. The person wants it to run on devices starting with iOS 6. I've set iOS Deployment Target at 6.1 and my base SDK is 9.3. I have it code-signed, provisions, etc.
I used a program called Deploymate to check if any conflicts would exist across the iOS versions. It passed.
I uploaded the IPA to Diawi. However, it crashes on my device (iOS 9) and says it "Could not be installed at this time". The simulator had no problems.
Is there anyway to diagnose this problem or have I skipped a step? I've seen other questions, but they pertain to iOS 7.

Can I use Apple's TestFlight with Xcode 5?

Is there some way that I can use Apple's TestFlight (as opposed to the original TestFlight, which does still accept sign ups and can currently be used) with Xcode 5?
I want to be able to use Xcode 5 because Xcode 6 only works with the iOS 8 SDK. While there are hacks to make the iOS 7 SDK work with Xcode 6, they don't seem to successfully build an archive (I get link errors about the Metal framework for some architectures).
I wanted to use the iOS 7 SDK because our App needs some modifications to work with the iOS 8 SDK. This modifications are largely due to changes in the implementation details of autorotation, which is carried out at the window level under iOS 8. Some libraries we use rely on the iOS 7 approach and are broken under iOS 8. While we're happy to update all of this, we'd prefer to resolve it at a future time.
Short answer – No.
Longer answer…
I noticed that Xcode 5 and Xcode 6 share the same "Archives".
It is possible to create an archive build with Xcode 5 and then see this archive build in Xcode 6. You can use Xcode 6 to upload the build to iTunes Connect. This all works, and iTunes connect will let you distribute the build created in Xcode 5 to test devices. Using the TestFlight App on devices, they'll download and attempt to instal the build.
However, the final step of installation fails, and the TestFlight App asks you to come and try later on. Trying later never got me any further, so my conclusion is that the final installation step requires the build to have been created with the iOS 8 SDK (or later).

Making iOS 6 apps with an iOS 7 beta device

This may seem an odd question but bear with me. I am all excited to try out iOS 7 beta, however I am developing an app that will be complete before iOS 7 comes out to the public.
So can I install iOS 7 on my device, and then develop and publish my app for iOS 6? Or would I need to downgrade to iOS 6 to develop my app and release it in the next few weeks?
I should add I want to do this because I only have one device.
You cannot release an app that has been built, compiled, or created with the pre-release SDKs and Tools. That means you can't release an app built with iOS 7 SDK features in Xcode 5 until Apple gives the green light for submission. (EDIT: iOS 7 is now public, but this will apply to any future betas - including iOS 7.1 and onward).
On the other hand, testing your app on a beta device is OK. It's not a good idea to test your iOS 6 app on iOS 7, but it will work. You can install iOS 7 beta on your device, but first think about your users. You'll want to test your app in the environment that your users will be using it in.
If you do upgrade to iOS 7 on your one and only device, you'll be stuck with the iOS Simulator - which is very very far from recommended. You can't downgrade or restore to an earlier iOS version from iOS 7.
If you are using the beta version of XCode, be sure to set the target to iOS 6, not iOS 7. When you target a version of iOS, that's the minimum version. You can run an app targeted for iOS 6 on iOS 7.
When you target iOS 6, the compiler will prevent you from including features that require iOS 7.
Still, for testing purposes, you'll want to test on a device with the latest released version. iOS 7 may have bug fixes that iOS 6 does not, so your app may run fine on iOS 7 but have bugs when run on iOS 6. Also, there may be performance differences.
You should test on both the simulator and an actual device, however if you want to risk it, the worst that will happen is your app may be rejected.
Theroretically you should not be able to run an app from Xcode 4 on an iOS 7 device. I was able to do this however, but I'm not sure why. Try deploying your app with Xcode 5 and then redeploy it with Xcode 4. In my case Xcode 4 would deploy to an iOS 7 device if the app is already installed (including all profiles).

Will Xcode 4.3.2 suffice to build apps for iOS 6?

After today's announcement that iOS 6 Beta is available to developers today, I am wondering if I jump on the iOS 6 ASAP will I still be able to build my apps in progress on my device(iPhone) from Xcode 4.3.2? or will there be a required update for Xcode as well?
Update: Currently I have iOS 6 on my iPhone and Xcode 4.5 installed. After that the organizer in Xcode (4.3.2 and 4.5) said 'could not support development' in the Provisioning. Then fixed that, and now I have 4.3.2 saying that it is running my app on my iPhone, but its not showing up on my phone. And 4.5 gets to the 'TakingInstallLock' point in the process, and just keeps trying, but getting nowhere. Anyone else having this issue? Anyone know of a solution?
You can push apps to your phone from Xcode 4.3.x if your phone is running the iOS 6 Beta.
You cannot, however, utilize any of the iOS 6+ frameworks such as the new Social framework from within Xcode 4.3.x
I can't comment yet so this is to confirm that installing Xcode 4.5 DP acutally installs the iOS 6 SDK for Xcode 4.3.2 as well. This is rather obvious as SDK files are installed in a general place (namely the Library folder) of OSX.
The steps to use your updated iOS 6 device for development with Xcode 4.3.2 thus are:
Download Xcode 4.5 DP from the dev area of apple.com.
Install Xcode 4.5
Start up Xcode 4.3.2
Open up the devices section, choose your device for development, wait for the process of fetching information to finish and you are good to go.
Regards!
Any apps that you write using beta software will be rejected. To translate, if you use iOS 6 SDK beta or the new Xcode beta that gets released today, your app will be rejected even if you make a build for just iOS 5.
I installed iOS6 and Xcode 4.3.2 didn't recognize my device. After installing Xcode 4.5 beta and letting it install a few things, 4.3.2 now recognizes my device and I can carry on building and testing on my iOS6 device.
I would say no!
I updated last night and now I can't run my app on my phone.

Resources