我的二进制文件没有针对 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 进行优化验证时出现错误