5
votes

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>
1
Hope you are using Xcode 7+ and you have launchscreen storyboard file created? If not launch images assets folder should be used and launchscreen should be removed from App Icons and Launch Images sectionAmod Gokhale
As it says in the question, I am using a storyboard for my launch screenMike Caron
i got similar error few days back. If you are using storyboard then asset catalog selected for "launch images source" is empty? Trying out few things and somehow it was selected in my case and unassigned images in that folder giving me same error. Removed the selection ( deleted unassigned launcher images ), clean build solved issueAmod Gokhale
Yes, the PList is above. There is no reference to an asset catalog. I've tried adding an asset catalog just in case, but nothing helps.Mike Caron
its really frustrating.. have you tried last step mention here forums.xamarin.com/discussion/59160/error-itms-90096Amod Gokhale

1 Answers

5
votes

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.