捆绑显示名称缺少空格字符
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
【讨论】:
以上是关于捆绑显示名称缺少空格字符的主要内容,如果未能解决你的问题,请参考以下文章
使用 robocopy 复制文件(长名称和路径,以及许多空格) - 缺少参数
捆绑包 UITests 无法加载,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包
Angular Universal:如何解决缺少的名称、模块和其他奇怪的事情