我的二进制文件没有针对 iPhone 5 进行优化,同时具有本地化的启动画面

Posted

技术标签:

【中文标题】我的二进制文件没有针对 iPhone 5 进行优化,同时具有本地化的启动画面【英文标题】:My binary is not optimized for iPhone 5 while having localized splash screens 【发布时间】:2014-10-04 09:56:38 【问题描述】:

我的应用程序在通过 ApplicationLoader 将其上传到 iTunesConnect 后,一直被拒绝为无效的二进制文件。我收到的电子邮件通知是:

您的二进制文件未针对 iPhone 5 进行优化 - - 提交的新 iPhone 应用程序和应用程序更新必须支持 iPhone 5 上的 4 英寸显示屏,并且必须在启动图像的部分之后立即包含带有 -568h 大小修饰符的启动图像文件名。启动图像必须是 PNG 文件并且位于包的顶层,或者如果您本地化启动图像,则在每个 .lproj 文件夹中提供。查看 /.../

上的“ios 人机界面指南”,了解有关 iPhone 5 支持和应用启动图像的更多信息

这很奇怪,因为我将所有启动画面打包到二进制文件中,通过提取我的 .ipa 进行检查,并且它们在那里(在它们各自的 .lproj-s 中),名称正确且大小正确。我不使用资产目录,因为我还没有找到一种方法来本地化它(还)。

拒绝的问题可能是什么?

【问题讨论】:

"Your binary is not optimized for iPhone 5" after I upload an app with xcode 6.0.1 的可能重复项 【参考方案1】:

在我的情况下,我也面临同样的问题,myapp plist 文件在从验证时修复的 plist 问题中删除密钥后包含密钥“启动图像”。

【讨论】:

我没有LaunchImage 密钥,只有UILaunchImages。还是不行。【参考方案2】:

这里的问题似乎是,即使我没有本地化该特定语言的启动画面,也应该在每个本地化文件夹中都有启动画面。包括Base.lproj。将英文飞溅复制到默认值后,该应用通过了初始检查,正在等待我们所说的审核。

【讨论】:

Default.lproj 是什么意思?我有一个fr.lproj、一个en.lproj、一个nl.lproj 和一个Base.lproj`,但Default.lproj 是什么?我仍然被itunesconnect拒绝-_- 抱歉,我的意思是Base.lproj。我修复了答案中的错误。你有他们文件夹中所有飞溅的本地化吗?在我的搜索过程中,我想出了这个错误的许多可能性......你确定你禁用了 AssetCatalog 吗? 是的 AssetCatalog 被禁用了,我再试试Base.lproj 我今天又试了一次,Base.lproj 版本的 LaunchImage 没有解决任何问题。【参考方案3】:

我们遇到了同样的问题,尝试了很多解决方案都无法解决,我们认为这是应用提交中的一种错误。 但是我们找到了一种解决方法,可以保持启动图像本地化并通过提交验证。

环境:

带有 iOS 8.1 SDK 的 Xcode 6.1 (6A1052c)

前提条件:

在“*-info.plist”文件中有以下属性。

步骤:

    转到您的目标设置并在我们的标准场景中(本地化 启动图像,在“*-info.plist”中使用“UILaunchImages”,但不使用 图片资源),它应该看起来像图片

    更改设置以使用图片资源(注意:在此步骤之后,Xcode 会自动删除您的 *-info.plist 文件中的“UILaunchImages”属性。所以请先备份这些属性。)

    转到“LaunchImage”资源(可以单击右侧的箭头按钮)并填充来自您的 *.lproj 文件夹之一的图像。

    现在,转到包含图像和“Contents.json”文件的“LaunchImage”文件夹。

    删除刚刚添加的所有启动图像,但保留“Contents.json”文件。

    检查“Contents.json”,它应该包含如下图所示的属性

仔细检查以下项目:

*-info.plist 包含“UILaunchImages”属性

项目设置使用图像资源作为启动图像

“LaunchImage”资产文件夹中的“Contents.json”和文件夹DOES NOT确实有启动图像

现在您可以尝试本地化启动图像并将二进制文件提交到 iTunes Connect。在我们的应用中,解决方法确实适用于“本地化启动图像”和“提交成功”。

这应该是避免提交检查中的错误的一个技巧。

由于上述解决方法不会改变任何资源,除了让检查认为我们使用图像资产,我们更确信 Apple 的检查中存在一些错误。

干杯!

【讨论】:

虽然这可能会回答问题,但最好在此处提供实际信息而不仅仅是链接。 Link-only answers are not considered good answers and will probably be deleted. @EdCottrell 感谢您的建议,我是 *** 的新手,我会尝试遵循网站的建议。【参考方案4】:

我遇到了同样的问题。如果在 ios 8 中运行,则不需要启动图像。我制作了一个新的启动屏幕作为情节提要并删除了 xib 版本。更改 Targets -> General -> Launch Screen file 中的设置以反映新文件。并确保 Targets -> Info -> UILaunchStoryboardName 也已更新。

【讨论】:

以上是关于我的二进制文件没有针对 iPhone 5 进行优化,同时具有本地化的启动画面的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap 您的二进制文件未针对 iPhone 5 进行优化

您的二进制文件未针对 iPhone 5 进行优化,将 launchscreen.xib 用于 iOS 8 目标

二进制未针对 Xcode 6.3 的 iPhone 5 错误消息进行优化

Xcode 5 您的二进制文件未针对 iPhone 5 进行优化验证时出现错误

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

phonegap 上传应用程序时出错:您的二进制文件未针对 iPhone 5 进行优化