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

Mik*_*ron 5 itunesconnect xamarin.ios ios

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

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

ITMS-90022:您的二进制文件未针对iPhone 5进行优化

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

我试过了:

  • 在我的root中放入一个Default-568h@2x.png文件
  • 修改我的Info.plist以直接引用该文件
  • 将其放入Launch Images资产目录中
  • 在它旁边添加一个Default@2x.png文件,以防万一
  • 从Info.plist中删除引用,并依赖旧的默认值
  • 将最低操作系统版本从更改8.09.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>

Mik*_*ron 5

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

<key>UILaunchStoryboardName</key>
<string>LaunchScreenIntracept.storyboard</string>
Run Code Online (Sandbox Code Playgroud)

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

<key>UILaunchStoryboardName</key>
<string>LaunchScreenIntracept</string>
Run Code Online (Sandbox Code Playgroud)

一旦我这样做,它就有效了.

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