无法将带有情节提要启动图像的应用程序提交到App Store:您的二进制文件未针对iPhone 5进行优化

时间:2014-11-25 20:26:56

标签: xcode ios8 storyboard xcode6 launchimage

我正在尝试将我的第一个应用程序提交到App Store,但是当我尝试时,我收到以下错误:

  

错误ITMS-9000:"您的二进制文件未针对iPhone 5进行优化 - 新增功能   提交的iPhone应用和应用更新必须支持4英寸显示屏   在iPhone 5上,必须包含一个引用的启动图像   UILaunchImage下的info.plist,UILaunchImageSize值设置为   {320,568}。启动图像必须是PNG文件并位于   您的捆绑包的顶级,或者如果您在.lproj文件夹中提供   本地化您的发布图像。

我使用的是SDK 8.1。部署目标是8.0。启动图像由故事板启动屏幕文件设置。没有过时的启动屏幕图像,我也不打算添加它们,因为目标系统是iOS 8 +。

有什么问题? Xcode版本6.1(6A1052d)。

8 个答案:

答案 0 :(得分:41)

您的应用是否支持iOS7或之前的版本?这就是问题所在。在这种情况下,您必须将启动画面作为iOS7的PNG文件提供。

LaunchScreen.xib或LaunchScreen.storyboard仅适用于iOS8及以上版本。

此处提供更多信息:http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/

  

使用iOS 8,您现在可以提供Interface Builder文档   运行时,让操作系统生成所有必需的启动映像   你。

答案 1 :(得分:14)

以下是生气2天后对我有用的事情:

  1. 将部署目标设置为7.0
  2. 添加尺寸 320x568 的新水花图片,并将其命名为 Default-568h.png
  3. 在Info.plist文件中添加以下代码。
  4. <key>UILaunchImages</key>
        <array>
            <dict>
                <key>UILaunchImageMinimumOSVersion</key>
                <string>7.0</string>
                <key>UILaunchImageName</key>
                <string>Default-568h</string>
                <key>UILaunchImageOrientation</key>
                <string>Portrait</string>
                <key>UILaunchImageSize</key>
                <string>{320, 568}</string>
            </dict>
        </array>
    

    要点思考

    • 我的应用程序完全处于横向模式,但我必须使用上面给出的尺寸的肖像尺寸图像。
    • 我必须使用320x568大小(1x),尽管我项目中的每个其他资源都是基于视网膜的,即(2x)
    • 还有一件事:我没有将资产目录用于启动图像。我通过我的代码使用自定义的启动屏幕序列,但我仍然必须按照上述步骤来解决此错误。

    <强>截图

    enter image description here

答案 2 :(得分:7)

将故事板启动屏幕文件重命名为“LaunchScreen.storyboard&#39;。

如果使用文件创建新的启动屏幕文件 - &gt;新 - &gt;文件,Xcode会将名称默认为“启动Screen.storyboard&#39;”。

但是,在创建新项目时,Info.plist中指定的默认名称为“LaunchScreen.storyboard&#39;没有空间。

答案 3 :(得分:1)

当我使用启动屏幕xib文件 NOT 时尝试提交时出现同样的错误。我有正确尺寸的所有正确的图像资产,但仍然没有。

我发现this post其中一个小伙子遇到了同样的问题,最后使用了错误中指示的568x320文件。我尝试了同样的但这不适合我。

最后,由于我的应用仅适用于iOS8,因此我使用了xib文件并成功提交了应用。

答案 4 :(得分:1)

发生此问题的原因是您没有正确添加尺寸为640x1136(iphone 5)的启动图像。

在下面编辑Contents.json后,我可以正常上传到iTunesConnect

{
  "images" : [
{
  "orientation" : "portrait",
  "idiom" : "iphone",
  "filename" : "splash-480h.png",
  "extent" : "full-screen",
  "scale" : "1x"
},
{
  "orientation" : "portrait",
  "idiom" : "iphone",
  "filename" : "splash-480h@2x.png",
  "extent" : "full-screen",
  "scale" : "2x"
},
{
  "orientation" : "portrait",
  "idiom" : "iphone",
  "filename" : "splash-568h@2x.png",
  "extent" : "full-screen",
  "subtype" : "retina4",
  "scale" : "2x"
},
{
  "extent" : "full-screen",
  "idiom" : "iphone",
  "subtype" : "736h",
  "filename" : "splash-736h@3x.png",
  "minimum-system-version" : "8.0",
  "orientation" : "portrait",
  "scale" : "3x"
},
{
  "extent" : "full-screen",
  "idiom" : "iphone",
  "subtype" : "736h",
  "filename" : "splash-landscape-736h@3x.png",
  "minimum-system-version" : "8.0",
  "orientation" : "landscape",
  "scale" : "3x"
},
{
  "extent" : "full-screen",
  "idiom" : "iphone",
  "subtype" : "667h",
  "filename" : "splash-667h@2x.png",
  "minimum-system-version" : "8.0",
  "orientation" : "portrait",
  "scale" : "2x"
},
{
  "orientation" : "portrait",
  "idiom" : "iphone",
  "extent" : "full-screen",
  "filename" : "splash-480h@2x.png",
  "minimum-system-version" : "7.0",
  "scale" : "2x"
},
{
  "extent" : "full-screen",
  "idiom" : "iphone",
  "subtype" : "retina4",
  "filename" : "splash-568h@2x.png",
  "minimum-system-version" : "7.0",
  "orientation" : "portrait",
  "scale" : "2x"
}
   ],
  "info" : {
"version" : 1,
"author" : "xcode"
  }
}

答案 5 :(得分:0)

如果你引用https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html,它说iPhone 6(加号)需要启动XIB或故事板文件。

如果你看看这里 https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW2它指的是图像大小,并且从未明确表示iPhone 5可以处理启动文件(我知道它也没有说它没有)。至少iPhone 4s看起来没有,所以我猜iPhone 5也没有,你必须添加一个静态文件。

答案 6 :(得分:0)

对于丢失的Xamarin灵魂来说,我通过在Resources文件夹下使用名为Images.xcassets的图像xcassets来解决这个问题。

我从头开始创建它,将它命名为Media.xcassets,因为它来自默认,并在根文件夹下,而不是资源。它有效。 :/

答案 7 :(得分:0)

我正在使用React Native,并在添加react-native-splash-screen插件

后遇到此问题

但是,我通过此链接跟踪方法后得到了解决方案

Your binary is not optimized for iPhone 5

当我这样做时问题已解决:

  1. 我已完全删除了laungh图片'xcassets
  2. 添加了启动图像集
  3. 并再次添加了所有启动图像
  4. 再次创建了一个新的ipa
  5. 这一次成功地提交了。