Application Loader Error

Hi, I’ve a problem when add IPA with Application Loader.

My Environment:

Corona Version 3.0.0 | Build 2017.3135 MacOS Sierra v10.12.6 XCode v9.0 (9A235)

Since with Xcode 9, the iOS SDK showed by Corona is 11.0 Beta, I’ve downloaded XCode 8.3 from Apple site and user  xcode-select --switch <path> to build with 10.3 iOS SDK:

corona_ios_build.png

The build is done without error, but when I try to send IPA (production) to Apple Store through Application Loader appear this error messages:

description length:591487 ERROR ITMS-90705: "Launch storyboard not found. Make sure you specify the launch storyboard filename without a filename extension for the key UILaunchStoryboardName in the Info.plist."

I’ve just published different version of my game to Apple Store, and never showed this error.

What’s the problem? Maybe build.settings?.. but I never change from first release:

-- Supported values for orientation: -- portrait, portraitUpsideDown, landscapeLeft, landscapeRight settings = { window = { defaultMode = "fullscreen", defaultViewWidth = 800, defaultViewHeight = 1200, resizable = true, enableCloseButton = true, }, orientation = { default = "portrait", supported = { "portrait", "portraitUpsideDown" } }, excludeFiles = { all = { }, iphone = { "Icon-\*dpi.png", "keys/\*", "editor/\*" }, android = { "Icon-120.png", "Icon-152.png", "Icon-16.png", "Icon-24.png", "Icon-32.png", "Icon-40.png", "Icon-40@2x.png", "Icon-60.png", "Icon-60@2x.png", "Icon-60@3x.png", "Icon-64.png", "Icon-72.png", "Icon-72@2x.png", "Icon-76.png", "Icon-76@2x.png", "Icon-Amazon.png", "Icon-Small-40.png", "Icon-Small-40@2x.png", "Icon-Small-40@3x.png", "Icon-Small-50.png", "Icon-Small-50@2x.png", "Icon-Small.png", "Icon-Small@2x.png", "Icon-Small@3x.png", "Icon.png", "Icon@2x.png", "keys/\*\*", "editor/\*\*" }, }, plugins = { ["plugin.flurry.analytics"] ={publisherId = "com.coronalabs" }, -- Android | iOS ["plugin.facebook.v4a"] ={publisherId = "com.coronalabs" }, -- Android | iOS ["plugin.google.play.services"] ={publisherId = "com.coronalabs" }, -- Android | iOS ["CoronaProvider.ads.vungle"] ={publisherId = "com.vungle" }, -- Android | iOS ["plugin.google.iap.v3"] ={publisherId = "com.coronalabs", supportedPlatforms = {android=true}}, -- Android ["CoronaProvider.gameNetwork.apple"] ={publisherId = "com.coronalabs", supportedPlatforms = {iphone=true }}, -- iOS }, iphone = { plist = { FacebookAppID = "XXXXXXXX", CFBundleURLTypes = {{CFBundleURLSchemes = {"fbXXXXXXXX"}}}, UIStatusBarHidden = true, UILaunchStoryboardName = "LaunchScreen", UIPrerenderedIcon = true, UIApplicationExitsOnSuspend = false, UIAppFonts = { "nightclub-btn.ttf" }, CFBundleIconFiles = { "Icon-120.png", "Icon-152.png", "Icon-16.png", "Icon-24.png", "Icon-32.png", "Icon-40.png", "Icon-60.png", "Icon-64.png", "Icon-72.png", "Icon-76.png", "Icon-40@2x.png", "Icon-60@2x.png", "Icon-60@3x.png", "Icon-72@2x.png", "Icon-76@2x.png", "Icon-Small-40.png", "Icon-Small-40@2x.png", "Icon-Small-40@3x.png", "Icon-Small-50.png", "Icon-Small-50@2x.png", "Icon-Small.png", "Icon-Small@2x.png", "Icon-Small@3x.png", "Icon.png", "Icon@2x.png", }, -- Whitelist Facebook Servers for Network Requests NSAppTransportSecurity = { NSExceptionDomains = { ["fbcdn.net"] = {NSIncludesSubdomains = true, NSExceptionRequiresForwardSecrecy = false }, ["facebook.com"] = {NSIncludesSubdomains = true, NSExceptionRequiresForwardSecrecy = false }, ["akamaihd.net"] = {NSIncludesSubdomains = true, NSExceptionRequiresForwardSecrecy = false }, }, NSAllowsArbitraryLoads = true, }, -- Whitelist Facebook Apps LSApplicationQueriesSchemes = { "fb", "fbapi", "fbapi20130214", "fbapi20130410", "fbapi20140410", "fbapi20140116", "fbapi20150313", "fbapi20150629", "fbauth", "fbauth2", "fb-messenger-api20140430", "fb-messenger-api", "fbshareextension" }, CFBundleLocalizations = { "en", --english "it", --italiano "de", --tedesco "ar", --arabo "ru", --russo "es", --spagnolo "fr", --francese "ja", --giapponese "ko", --koreano }, }, }, android = { usesPermissions = { "android.permission.INTERNET", "android.permission.ACCESS\_NETWORK\_STATE", "com.android.vending.BILLING", "com.android.vending.CHECK\_LICENSE", "android.permission.WRITE\_EXTERNAL\_STORAGE", }, facebookAppId = "XXXXXXXX" } }

Just a question… Since Xcode 9 supports down to iOS 8, why not use it? iOS 11 is “targeted” but the app will work on older versions.

Opened info.list from IPA generated by Corona, the info about UILaunchStoryboardName is right, there is not filename extension:

\<key\>UILaunchStoryboardName\</key\> \<string\>LaunchScreen\</string\>

So, why Apple Store error?

We are looking into the issue.

Rob

Thank you! …I’m waiting for release new game version.

Is there a reason to just not get the latest daily build since we’ve made other fixes and go with Xcode 9 fully. It will still work back to iOS 8 devices.  Apple’s submission process usually has some bugs like this that they flag when they start changing the autoscanning process.

Rob

So, can I use another corona build to avoid the problem? And what build?

I would recommend daily build 3157 or later. 

Rob

I’m used the last daily build (3158) , but the error is the same:

ERROR ITMS-90705: "Launch storyboard not found. Make sure you specify the launch storyboard filename without a filename extension for the key UILaunchStoryboardName in the Info.plist."

And this is the info.plist

\<key\>UILaunchStoryboardName\</key\> \<string\>LaunchScreen\</string\>

Thank you

Have you looked through this thread yet?

https://forums.coronalabs.com/topic/70214-cfbundleiconname-missing-in-plist-unable-to-submit-to-appstore/page-2

Rob

I’m getting the same error on build 3159. Any update to this?

I just updated one of my games to use the xcassets needs for Icons and it was using my existing LaunchScreen storyboard. I uploaded it to Apple and it passed all their scans.

I would suggest doing a File->New Project from the Corona menu and copy the various launch screen and xcassets folders to your project. Or just try submitting the empty project to make sure it passes.

Rob

Hi, Rob.

I just add only  LaunchScreen.storyboardc file, and Application Loadere validation is passed. (Build with 2017.3158 for iOS 10.3)

…now I’m waiting for apple review!

Simone

Good!

Yup, can confirm that worked. Cheers

I’m sorry, I’m experiencing the same issue and I do not understand exactly how you managed to solve the problem … could walk me through it?

Can you post your build.settings?

Have you setup up a LaunchScreen.storyboardc file yet?

Rob

Solved, following the instructions at: https://docs.coronalabs.com/guide/distribution/buildSettings/index.html#corona-splash-screen

What I needed was a blank LaunchScreen.storyboardc, which i found at:

/Applications/Corona/Resources/Resource Library/iOS/LaunchScreen.storyboardc

I’m not sure what this file should be used for, I suppose it is for customizing the Launch Screen for those who have bought either the CoronaSplashControl plugin or who have upgraded their licence. Being a “free” user, I’m just leaving the normal Corona Splash to be shown. Am I right?

Ah, and, of course, I upgraded Corona with the latest nighly build (I don’t get why the current Corona release is still a “release”, if a lot of things don’t work).

Apple shows an image before we show our splash screen. Apple uses this image for various purposes, mostly to indicate if the app supports various “tall” modes like for the iPhone 5.  There is a “static” method for doing this, but it’s a terrible experience and evidence shows that iOS 11 doesn’t work with the static method.

Everyone needs to use the Storyboard method now and it solves the problem completely.

Rob

Nice