Search code examples
iosxcodexibsplash-screenxcode-storyboard

What's the easiest way to update an old iOS app with a .xib launch screen for the AppStore's new storyboard requirement?


I'm doing some maintenance on an old iPad-only app in the appstore which I think was last put up from an Xcode8 build about 18 months ago.

My understanding (from here, for example) is that Apple have a 30th June deadline for existing apps to be updated to have been built with Xcode11 and SDK13. I am slightly unclear on whether this just means that any future app uploads must comply, or whether existing but non-compliant apps will be purged from the appstore, but for now I'm assuming the worst case and it would be good to get things sorted this side of the deadline.

The SDK requirement is no problem: I've successfully built the app with Xcode11.4 (after the usual wrestling with certificates and provisioning) and uploaded it to testflight and have reports from internal users that it seems to be working fine.

However there's another part of the requirement that concerns me:

Apps for iPhone or iPad must be built with the iOS 13 SDK or later and use an Xcode storyboard to provide the app's launch screen.

The app appears to use a LaunchImage.xib (very boring: a blank screen with a centred logo, but the app itself plays an opening video when it actually starts and it fits with that well enough). The build process seems to pick this file up from the value of the UILaunchStoryboardName key in the Info.plist file.

So my question is: is the fact my app uses UILaunchStoryboardName sufficient to meet the storyboard requirement?

If it isn't:

  • At what point in the app submission and review process should I expect to get called out for it, if at all? Just the first time I try to submit after the deadline?

  • Is there an easy/trivial way to migrate my .xib launch screen to a .storyboard? From googling around the topic I get the impression they are both XML formats that compile to .nib files, so they may not actually be all that different.

  • Am I unnecessarily worried my app will vanish from the appstore on 1st July? (Actually, I see there is an attempt to answer this at iOS 13 SDK deadline confusion for existing released apps but reading the comments there I am not quite so confident as the accepted answer seems to be.)

Thanks for any pointers. Bear in mind I just dabble in this stuff and don't spend nearly enough time using Xcode to be an expert with it.


Solution

    1. When you submit with a soon-to-be deprecated toolchain, you should get a warning about the submission via email. I can't recall for sure, but I think that once the toolchain is deprecated, Apple's servers reject the submission when you try to upload it.
    2. If your .xib is as simple as you say, it's probably easier to just re-create it as a storyboard. In addition, you can very likely copy the view in the .xib and paste it into your storyboard.
    3. Apple updates their SDK requirements every year. In other words, last year about this time they updated to require Xcode 10. And the year before that, the started requiring Xcode 9. If your app was built with Xcode 8, that means it has remained in the app store through two of these toolchain deprecations. It will continue to remain in the app store when requirements change to Xcode 11 this year.