【问题标题】: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(无间断空格),但对我没有帮助。

【问题讨论】:

    标签: ios objective-c cfbundledisplayname


    【解决方案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 版本上不会出现此问题。

    我解决了这个问题:

    1. 将 info.plist 作为源代码打开(右键单击,打开为...)
    2. 查找 CFBundleDisplayName
    3. 用 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多