捆绑显示名称缺少空格字符

Posted

技术标签:

【中文标题】捆绑显示名称缺少空格字符【英文标题】:Bundle display name missing space characters 【发布时间】:2017-09-21 07:16:41 【问题描述】:

当我将带有空格的 Bundle 显示名称设为“A B C D”时,我将应用名称设为“ABCD”。这仅在 ios 11 上发生。我尝试在 InfoPlist.string 中覆盖名称“CFBundleDisplayName”并使用特殊的 unicode 字符 \U00A0(无间断空格),但对我没有帮助。

【问题讨论】:

【参考方案1】:

这是因为 Apple 在 iOS 11 中对较长的应用名称进行了截断更改。如果名称超过 12 个字符,空格将被删除。否则,它们仍然存在。

例如,Guide book app 将变为Guidebookapp,但Gui boo app 将保持为Gui boo app

使用 unicode   (FIGURE SPACE) 有效,因为它不是 ascii 空间。我会犹豫是否将其用作解决方案,因为 Apple 会“修复”此错误并删除名称超过 12 个字符的应用程序的   似乎是合理的。

https://forums.developer.apple.com/thread/77832

【讨论】:

终于对正在发生的事情进行了实际解释!谢谢!然而奇怪的是,苹果仍然没有关于此的官方文档。 谢谢。它在 iPhone 11 Pro 上也为我保留了 14 个字符的空格。 这可能是 Apple 试图消除同形字滥用的一种尝试。我在我的 Web 应用程序中使用 ASCII7 转换函数从用作键的值中去除 UTF8。【参考方案2】:

我也有同样的问题。仅在 iOS 11 上。在较低的 iOS 版本上不会出现此问题。

我解决了这个问题:

    将 info.plist 作为源代码打开(右键单击,打开为...) 查找 CFBundleDisplayName 用 unicode   替换普通空间

就是这样。之后显示名称显示为空格。

更新:

  仅在输入 *.plist 时有效。 Xcode项目设置中无法插入Display name

【讨论】:

您好,您是否为此向bugreport.apple.com 开过票? @AndreaLeganza,没有。 请注意,  在 iOS 11 的“设置”应用和 iOS 9 和 10 的主屏幕中显示为双空格。 在苹果论坛上找到帖子原因:forums.developer.apple.com/thread/77832. 如何在多目标上下文中使用“InfoPlist.strings”来翻译应用名称?【参考方案3】:

当我在InfoPlist.strings 中手动或使用脚本将空格替换为FIGURE SPACE 时,它对我有用。

【讨论】:

只是从您的消息中复制粘贴空间,最后得到空间 很奇怪。它通过复制/粘贴“你的”空间在我的最后工作......【参考方案4】:

将 info.plist 编辑为源代码,但使用   而不是    看起来像 2 个空格。

【讨论】:

` ` 在 iOS 9.0 上运行良好,但在当前版本的 iOS (11+) 上无法运行。【参考方案5】:

在我的情况下,info.plist 文件中缺少此值,因此我只需在其中添加以下内容:

<key>CFBundleDisplayName</key>
<string>$(PRODUCT_NAME)</string>

【讨论】:

【参考方案6】:

在捆绑包显示名称中留出更多空间 像 abc 定义 abcdef

【讨论】:

以上是关于捆绑显示名称缺少空格字符的主要内容,如果未能解决你的问题,请参考以下文章

捆绑中的 NIB 缺少名称 MainWindow-iPad

使用 robocopy 复制文件(长名称和路径,以及许多空格) - 缺少参数

捆绑包 UITests 无法加载,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包

Angular Universal:如何解决缺少的名称、模块和其他奇怪的事情

捆绑包 UITests 无法加载,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包

捆绑安装问题:缺少 mysql.h