错误ITMS-90096 - 缺少iOS 7的启动映像

时间:2016-09-12 15:31:36

标签: ios xamarin.ios itunesconnect

我有一个Xamarin.iOS项目,我试图上传到iTunes连接。我的部署目标是iOS 8,我将故事板设置为我的启动图像。这在模拟器和设备上都能正常工作。

但是,当我通过Application Loader上传时,我收到此错误:

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

这令人难以置信地令人沮丧,因为我的理解是这是iOS 7的要求,而不是iOS 8.即便如此,我也试图满足错误无济于事。

我试过了:

  • 在我的根目录中输入Default-568h@2x.png文件
  • 修改我的Info.plist以直接引用该文件
  • 将其置于启动图像资产目录中
  • 在它旁边添加一个Default@2x.png文件,以防万一
  • 从Info.plist中删除引用,并依赖旧的默认
  • 将最低操作系统版本从8.0更改为9.0
  • 在每一步,检查生成的IPA以验证我所做的更改

没什么 - 没什么 - 有帮助。我的智慧结束了,明天我需要提交这件事,否则可能会错过截止日期。

我开始怀疑这实际上不是二进制本身的问题,但我不知道。

我的Info.plist,因为它现在存在:(是的,UILaunchImages部分被注释掉,如上所述它似乎没有区别)

<?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 个答案:

答案 0 :(得分:5)

因此,事实证明错误与启动图像本身无关,但与Info.plist:

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

看到.storyboard?那是错的!它应该只是基本文件名:

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

一旦我这样做,它就有用了。

我仍然有我的默认* .png文件,但已删除对它们的引用。我不知道他们是否需要,但他们现在将永远留在那里。