提交时“您的二进制文件未针对 iPhone 5 进行优化”(ITMS-90096)

Posted

技术标签:

【中文标题】提交时“您的二进制文件未针对 iPhone 5 进行优化”(ITMS-90096)【英文标题】:"Your binary is not optimized for iPhone 5" (ITMS-90096) when submitting 【发布时间】:2015-05-03 23:57:54 【问题描述】:

这是我的第一个 ios 应用程序,当我尝试将其提交到应用程序商店时,它给了我 ITMS-90096 错误。

我想我已经上传了所有正确的图标和启动画面图像。 它说明了 iphone-5 上 4 英寸显示屏的启动图像,但我不知道在哪里添加它。

这是我的启动图像源。

我是 ios 开发的新手,我有一个小的 android 背景,添加和提交应用程序的 ios 过程对我来说似乎很陌生。

【问题讨论】:

你可以试试这个:***.com/a/34764094/968848 如果我在使用 LaunchScreen.storyboard 文件时遇到同样的错误怎么办? 【参考方案1】:

2016 年 8 月更新

当使用 Xcode 7+ 并针对 iOS 8+ 时,建议删除 .xib 文件并创建一个新的 LaunchScreen.storyboard 使用给定的模板:

App Icons and Launch Images下的项目文件中设置它:


2015 年 10 月的原始答案

就像@Aditya Deshmane 一样,我也使用 .xib 文件作为我的“启动图像”。

Default-568.pngDefault-568@2x.png 添加到我的根目录并没有解决我的问题。

我必须将UILaunchImages 键添加到我的Info.plist

<key>UILaunchImages</key>
<array>
    <dict>
        <key>UILaunchImageName</key>
        <string>Default-568</string>
        <key>UILaunchImageSize</key>
        <string>320, 568</string>
    </dict>
</array>

如此处所述:iOS Key UILaunchImages

【讨论】:

这是完美的时机。我只是想弄清楚这一点;添加到根目录对我不起作用,但 plist 添加做到了。谢谢! @丹佩 这行得通。请确保: 1. 图像名称为 Default-568 2. 它位于项目的根目录 3. 它的尺寸为 320x568 普通,但绝对需要。 你说的根目录是指和MyProject.xcodeproj相同的目录吗?或目录MyProject/.. @W.K.S 到与MyProject.xcodeproj 相同的目录。但直到我添加了UILaunchImages 键,它才解决了我的问题 还必须在“应用程序图标和启动图像”中清除“启动屏幕文件”......并且还必须确保这两个文件都位于 *.xcodeproj 旁边的根目录中......可笑!【参考方案2】:
    检查所有这些图像都是 .PNG 将这些图像放在项目的根级别 为 iPhone 5 添加另一个名为“Default-568h@2x.png”的 splash.png。其大小应为 640 × 1136 像素。

【讨论】:

我应该把所有的图像放在项目的根目录还是在 images.xcassets 中? 如果您使用的是 images.xcassets,那么它应该不会产生任何问题。放在那里它仍然可以工作。 如果我不想使用任何启动图像怎么办? 谢谢伙计。我很惊讶为什么苹果让整个过程变得如此复杂。他们本可以接受非常高分辨率的图像并将其裁剪为他们想要使用的各种尺寸。谢谢你的帮助。效果很好。 我完全同意@SatinderSidhu,XCode 生态系统似乎是为那些完全反对 UX(将开发人员视为用户)的人驱动的。他应该为成为唯一一个知道所有这些特权的人而感到自豪,这可能是因为缺乏自信。 Android 生态系统更加友好【参考方案3】:

问题已经得到解答并且也可以正常工作,只需添加一个答案,因为我在不同的场景中遇到了类似的错误。

在我的例子中,我使用的是LaunchScreen.xib,它可以替代使用启动图像。

https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html

如上面链接中所述“在 iOS 8 及更高版本中,您可以创建 XIB 或故事板文件,而不是静态启动图像。”

但即使在使用 XIB 之后,我也遇到了这个错误。

为了解决这个问题,我从运行 iOS 8 的 4 英寸设备上截取了启动画面,它是 640 × 1136 像素。将其重命名为“Default-568h@2x.png”,将其添加到项目包的顶层。

出现此错误的原因可能是:

当苹果从 3.5 英寸设备过渡到 4.0 设备时,此图像是强制性的,否则应用程序会在信箱模式下运行(在 4 英寸设备上,您会在应用程序的顶部和底部看到黑条)。 因此,当我尝试在运行 iOS 7.1 的 4 英寸设备/模拟器上运行我的应用程序时,它确实进入了信箱模式(当我只使用基于 .xib 的启动时)。我添加“Default-568h@2x.png”信箱模式的那一刻,加上苹果批准的应用程序。

【讨论】:

对于那些使用更新的 xcode 6.x 的人来说很好的答案 这对我有用!尝试提交使用 Xcode 7 创建的新应用程序(经过这么长时间)肯定会保证这些“陷阱时刻”! 我也面临同样的问题。我也在使用XIB。 “将其添加到项目捆绑包的顶层”是什么意思?文件添加到哪里了? @Pranav 选择你的项目文件并右键添加到根目录,不要添加到其他目录下【参考方案4】:

就我而言,我不使用 LaunchScreen 文件,但其中有一个值。像这样删除它有效:

【讨论】:

这里也一样。谢谢。 自过去 2 天以来一直在努力搜索和故障排除,终于遇到了这个小解决方案并解决了它。谢谢!!【参考方案5】:

在带有 iOS 9 SDK 的 Xcode 7 上,如果您将“部署目标”设置为 8.0 或更高版本,并且没有为“启动图像源”选择资产目录,那么它将起作用。

【讨论】:

【参考方案6】:

我也很难弄清楚。我将 XCode 升级到第 7 版(iOS 9)后发生了这种情况。不知何故,它取消了启动图像并更改了启动图像选项,未选中的 iPhone Portrait for iOS 6.0 和 Prior 从右窗格中。

在我检查 iPhone Portrait 后,它会显示可分配的 iPhone Portrait iOS 5、6。我只需将图像拖放到适当的支架中即可。

然后我将此作业归档并成功将二进制文件上传到应用商店。我希望这会有所帮助。

【讨论】:

问题变得更糟,因为在 Xcode 7.1.1 中有两个用于“Retina 4”启动图像的插槽,具有相同的预期尺寸。一个适用于 iOS 5,6,另一个适用于 iOS 7-9。【参考方案7】:

尝试在“应用程序图标和启动图像”中清除“启动屏幕文件”

删除 laucnh 屏幕文件:删除名称。

【讨论】:

能否请您详细说明您的答案,添加更多关于您提供的解决方案的描述? 我在横向上传应用程序时也遇到了同样的错误 1.)U 可以更改 Info.plist 中的名称 Main storyboard file base name:Main 2.)U 可以“删除”具有写在“启动屏幕文件”中,它可以在我的情况下工作【参考方案8】:

此解决方案仅适用于 Phonegap + DevExtreme + Visual Studio (Windows):

我连续 3 天努力解决这个问题。希望别人不用。

请按照以下步骤解决问题:

    创建新解决方案。 删除除“congif.xml”和解决方案文件之外的所有文件和文件夹。 将现有文件和文件夹复制到新解决方案。请勿复制包含图标和启动/启动图像的图像。 在新解决方案中,从新添加所有图标和启动画面。

使用适当的分发证书构建此解决方案并将 IPA 提交到 App Store。它必须解决“90096”错误。

谢谢。

【讨论】:

【参考方案9】:

从 iOS9 开始,您应该将启动图像添加到项目根目录,而不是 Images.xcassets 文件夹。并在info.plist 中设置您的启动图像,键为UILaunchImages,例如:

<key>UILaunchImages</key>
<array>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>7.1</string>
        <key>UILaunchImageName</key>
        <string>iPhone5Portrait</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>7.1</string>
        <key>UILaunchImageName</key>
        <string>iPhone6Portrait</string>
    </dict>
</array>

【讨论】:

【参考方案10】:

将 XCODE 7.0.1 与未设置启动图像的应用一起使用。尝试使用该界面“创建” .xcassets 文件中的位置,但只创建了一个名称错误的集合。

必须返回 XCODE 6.4 以创建正确的位置/设置名称“LaunchImage”并加载文件。

然后回到 XCODE 7.0.1,一切似乎都很好。

看起来 XCODE 7.x 中引入了一个错误,无法正确创建启动映像 .xcassets。

【讨论】:

我想知道为什么 Apple 关心发布新版本的 Xcode。每个新版本,更多的错误。旧的还在那里。我只是讨厌 Xcode。【参考方案11】:

我在我的项目中遇到过这样的问题。 1. 问题是使用 LaunchScreen.Xib 没有删除 Images.assets 中的 LaunchImages。 从 Images.assets 中删除 LaunchImages 后,上传成功。 2. 请将 Deployment Target 设置为 8.0 以上 如果你也想部署 7.0,你必须添加 launchimages。

【讨论】:

【参考方案12】:

与@Sanghoon 类似,当我遇到此问题时,这是由于没有指定 iPhone Portrait 启动图像的目标 iOS 版本(尽管它在 XCode 6 中运行良好)

我不喜欢将所有启动图像放在根文件夹中,图像目录的工作更优雅,您不必根据@2x @3x 约定命名文件,因为图像目录会处理它.

我的完整答案在这里:https://***.com/a/34792891/1014983

【讨论】:

【参考方案13】:

如果你只支持 iOS9+ 你必须添加一个 LaunchScreen.storyboard (没有 ViewController)

并在您的目标中引用它

【讨论】:

【参考方案14】:

刚刚通过更正我的启动屏幕图像解决了这个问题。 确保您有 png 文件作为图像文件。

我有“jpeg”图像,只需更改名称即可将其直接转换为“.png”。这就是问题所在。使用转换器应用程序更改图像,一切正常。

【讨论】:

【参考方案15】:

还有一件事要检查...您的图片尺寸必须正确。我有一个设计师提供的名为 logo_640x1136.png 的初始屏幕图像,但我无法弄清楚为什么我不断收到此错误。最后我用file(命令行)检查了图像。原来图像实际上不是 640x1136。如果您不喜欢命令行,请在 Finder 中选择图像,然后按 Cmd+I 在“更多信息”下查看图像大小。

【讨论】:

【参考方案16】:

我知道这并不能直接回答这个问题,但希望对其他人有所帮助:我只是通过构建更高版本来解决此问题。在 tiapp.xml 中,我直接在 &lt;ios&gt; 标签下添加了&lt;min-ios-ver&gt;8.0&lt;/min-ios-ver&gt;

【讨论】:

【参考方案17】:

我在使用 LaunchScreen 时遇到了同样的问题。

从 Assets.xcassets 中删除 LaunchImage 为我解决了问题。

【讨论】:

以上是关于提交时“您的二进制文件未针对 iPhone 5 进行优化”(ITMS-90096)的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用jQuery提交功能时此表单不提交

git提交时设置忽略部分文件提交

在提交时检查 jQuery 验证之前的表单提交

提交按钮是不是在表单提交时将其值传递给操作方法?

Krajee 文件输入在表单提交时提交文件

向 Condor 提交作业时,Scala 提交文件会是啥样子?