Downgrade Xcode SDK for app submission - ios

I submitted an update to the AppStore last week with the latest SDK - Xcode 5.1.
However, I'm facing unexpected UI issues on iPhone 5S which I didn't previously find while testing on the iOS 64-bit simulator.
This seems clearly to be an SDK issue.
I'm thinking the quickest solution now would be to submit another update with the older Xcode version 5.0.2.
Is this a good idea?
Please suggest some pros & cons.

I found that the issue was because of the UIButton defined weak, which failed to get allocated on 64-bit devices for the app update submitted from Xcode 5.1
Interestingly, UIViews and UILabels declared in a similar way did NOT fail to get memory allocations.
Looking back at my original question, it was probably best to fix the issues under the latest SDK rather than reverting to an older version.

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.

How can I use and debug an iOS version a simulator doesn't exist for?

I'm in the midst of squashing bugs for my App in development, and I've stumbled across a problem when it comes to addressing a crash occurring on iOS 8.0.2
The problem is that I can't actually test (On the simulator) for iOS 8.0.2 as the earliest version of iOS 8 I can use is 8.1
I am not supporting iOS 7, but did go back and try to see if I could catch the bug there as described by the tester who reported the crash. It did not occur no matter what I did, so I assume it must occur when running iOS 8 only.
I'm not sure how to address this problem. I would like to submit my App for review, but if I cannot eliminate this crash I will be rejected. Yet I can't test for it either. I've been waiting a day+ now for any crash report to come back from Test-Flight, but none have shown yet. It could take around three days for that to happen.
Can anyone assist me in finding another way or workaround to be able to test for this crash?
You could download and install Xcode 6 (Xcode 6.1 might also have the iOS 8.0 simulator) as that'll have the iOS 8 SDK and simulators (you'll have to be signed in to your Apple developer account to access those links otherwise pick from the list here).
The problem you'll then have with that though, is that you'll be compiling your code against a different SDK. But its worth a try!
Its also difficult to get specific 8.0.X versions of the simulators as they only really have the minor version release (8.X) available as opposed to the bug fix releases.
Obviously the only guaranteed way to reproduce the issue is on a 8.0.2 device.

Does outdated Xcode responsible for crashes of the app?

I had Xcode v6.0 - v6.1 . I'm not sure which one. What I can remember is, it does not support iOS 8.2
The problem is that my team and I release a game app for beta testing ( test flight pre-release , on iTunes connect ) . Every user that got iOS 8.2 crashes at the very beginning when they open up this game app.
After, I upgrade my Xcode to v6.2 which support iOS 8.2. It solve the problem. But still my team and I are not 100% sure if this will solve the problem long term.
My game app framework:
- Cocos2d-x v2.2.6
My question is that:
1.) Is Xcode version the reason it crashes at the first place?
2.) If so, do I need to update my app and my Xcode every time Apple releases new version of iOS?
Thankyou. :)
You need to investigate exactly what is happening, for example by connecting a device running 8.2 to a development machine and debugging. It is most likely that you have some bug in your code that can strike at any time due to random differences of the environment; for example uninitialised memory will have random values that can be different depending on the OS and will sometimes crash and sometimes not. It is quite possible to have a bug that has nothing to do with OS or Xcode version at all that behaves like this. And that bug can reappear at any time.
Correctly written code will work on all future OS versions without problems. With emphasis on "correctly written".

Non-public API usage

I can't upload an app to iTunes Connect.
Xcode uploader says that I'm using allocBatch:withEntity:count:, allocWithEntity:, IndexForKey:, fastIndexForKnownKey:
I'm not using this methods, and I don't know where they could be. A week ago same code was uploading successfully. What can be the cause of such behavior?
UPDATE
Submitting with older Xcode is not working anymore, this error reveals on binary processing.
I had this exact issue using Yosemite with Xcode 6.1 and using Objective C. I also got a warning on validation saying you can't upload an app created with a beta version of Xcode, which 6.1 is at the time of writing this.
I trashed Xcode 6.1 by dragging it to the trash form Finder then downloaded Xcode 6.0.1 GM from the App Store. I tried twice to install 6.0.1 over the top of 6.1 but it didn't work, hence the trashing of 6.1
Having cleaned and recompiled my app with Xcode 6.0.1 it validated and submitted to the app store with no problem. I hope this helps.
I fixed it by changing the deployment target from iOS4.3 to iOS5.0 all fixed using Xcode 6.1
I encountered the exact same error when using Xcode 6.1 (and its bundled Application Loader) on Mac OS 10.9.5. Clicking "Back" within the Application Loader and re-submitting the same binary worked. In other words, trying a second time succeeded. My app was built with iOS SDK 8.1.
You don't have to delete XCode 6.1. It would become handy in couple days. Just download XCode 6.0.1, copy it somewhere, and use sudo xcode-select --switch /Applications/Xcode601.app/Contents/Developer/. Then start it, and build your great app with it.
The API differs between iOS 7 and iOS 8. I got my App validated by switching to Deployment Target "8.0" - built with XCode 6.1. It might not be the solution to all you guys but you could give it a try.
Might have happened to me because I recently started using UIAlertController -> seems to be an iOS-8-Feature. On iOS 7 this would be UIAlertView. So if you use some nifty new features they might not have been available with previous iOS versions - thus non-public API.
Increasing the version number of my app did the trick for me.
EDIT: Just saw a comment in my bug report to apple
So most likely the version number had nothing to do :D
I got the same problem in Xcode 6.0.1 if I use the archive created by Xcode 6.1. It works if I recreate the archive by Xcode 6.0.1. That means the non-public API is added by Apple in Xcode 6.1.
I tried to delete all DerivedData.
/Users/{user_home_folder}/Library/Developer/Xcode/DerivedData
and I validated successfully.
http://qiita.com/PGMY/items/831618ad416780e0dc7c
i had meet same issue when i cancelled archiving to app store. Apple send me email about this subject. And than i recreate archiving and send to App Store. Everythink is ok for a now.

Have you had an iOS app be rejected because of a mismatch in Xcode and SDK releases?

My app has a number of issues when compiled using SDK 7.0, so for the time being I'm setting my "Base SDK" to 6.1 (from Xcode4) in Xcode5 for production builds.
I wasn't able to find anything that said this would be an issue, but with the amount of time it takes to get an app approved or rejected, I'm slightly paranoid.
I was wondering if anyone has experienced a rejection due to a mismatch in Xcode and SDK release cycles like this?
There is nothing wrong with setting the Base SDK to a lower value than the version that is included with XCode. That setting is there so you can build code that is backwards compatible with previous iOS versions. I have submitted apps using exactly this functionality in the past that were not rejected.

Resources