Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ERROR ITMS-90096 - Missing launch image for iOS 7

I have a Xamarin.iOS project that I am trying to upload to iTunes connect. My deployment target is iOS 8, and I have a storyboard set as my launch image. This works correctly both in the simulator and on device.

However, when I upload via Application Loader, I get this error:

ITMS-90022: Your binary is not optimized for iPhone 5

This is incredibly frustrating, since my understanding is that this is an iOS 7 requirement, not iOS 8. Even so, I have attempted to satisfy the error to no avail.

I have tried:

  • Putting a [email protected] file in my root
  • Modifying my Info.plist to directly reference that file
  • Putting it in a Launch Images asset catalog
  • Adding a [email protected] file along side it, just in case
  • Removing the reference from Info.plist, and relying on the old default
  • Changing the minimum OS version from 8.0 to 9.0.
  • At every step, inspecting the produced IPA to verify the changes I made are present

Nothing -- nothing -- has helped. I'm at my wits end, and I need to get this thing submitted by tomorrow, or risk missing a deadline.

I'm starting to suspect that this is not actually a problem with the binary itself, but I have no clue.

My Info.plist, as it exists right now: (Yes, the UILaunchImages section is commented out, as stated above it seems to make no difference)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>genome</string>
    </array>
    <key>UIDeviceFamily</key>
    <array>
        <integer>1</integer>
        <integer>2</integer>
    </array>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>MinimumOSVersion</key>
    <string>9.0</string>
    <key>CFBundleDisplayName</key>
    <string>Intracept</string>
    <key>CFBundleIdentifier</key>
    <string>com.klick.sensei.intracept</string>
    <key>CFBundleVersion</key>
    <string>0.2.2</string>
    <key>CFBundleIconFiles</key>
    <array/>
    <key>UILaunchStoryboardName</key>
    <string>LaunchScreenIntracept.storyboard</string>
    <key>CFBundleShortVersionString</key>
    <string>0.2.0</string>
    <key>XSAppIconAssets</key>
    <string>Resources/Media.xcassets/AppIcons_Intracept.appiconset</string>
    <key>CFBundleName</key>
    <string>Intracept</string>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>com.klick.sensei.intracept</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>intracept</string>
            </array>
        </dict>
    </array>
    <key>UIRequiresFullScreen</key>
    <true/>
<!--
    <key>UILaunchImages</key>
    <array>
        <dict>
            <key>UILaunchImageSize</key>
            <string>{320, 568}</string>
            <key>UILaunchImageName</key>
            <string>Default</string>
            <key>UILaunchImageOrientation</key>
            <string>Portrait</string>
            <key>UILaunchImageMinimumOSVersion</key>
            <string>7.0</string>
        </dict>
    </array>
-->
</dict>
</plist>
like image 895
Mike Caron Avatar asked Sep 12 '16 15:09

Mike Caron


1 Answers

So, it turns out the error had nothing to do with the launch images themselves, but with the Info.plist:

<key>UILaunchStoryboardName</key>
<string>LaunchScreenIntracept.storyboard</string>

See that .storyboard? That's wrong! It should just be the base file name:

<key>UILaunchStoryboardName</key>
<string>LaunchScreenIntracept</string>

Once I did that, it worked.

I still have my Default*.png files, but the references to them have been removed. I have no idea if they are required or not, but they will remain there forever now.

like image 53
Mike Caron Avatar answered Sep 21 '22 22:09

Mike Caron