在 Xcode 扩展中,所有项目名称和目标名称向用户显示的位置在哪里?

Where do all the Project Name and Target Names appear to a user in an Xcode extension?

我想创建一个新的 Xcode Source Editor Extension。这涉及创建:

  1. 一个新的 Xcode 项目。
  2. 一个新的 Xcode 源代码编辑器扩展目标。

显然两者都需要名称。我想知道这些名称出现在哪里可以帮助我决定应该为这些名称添加多少上下文。例如,如果它出现在“Acme Corp”的菜单项下,则称它为“Xcode Extensions”就足够了。如果它没有出现在这样的名称下,那么在标题中包含 Acme 就有意义了。

此外,我尝试更改目标的 CFBundleDisplayName,并注意到它出于某种原因没有更新编辑器菜单项名称。

用户会在哪些地方看到这些名称以及控制它们的设置?

首先,我将定义以下内容:

  • AppTarget:应用程序的目标,在创建新的 macOS 应用程序时创建。
  • ExtensionTarget:扩展的目标,在添加“Xcode 源代码编辑器”目标后创建。

而且,我假设您将应用程序命名为“MyApp”,将扩展程序命名为“MyExtension”。

这将设置一个具有以下选项的项目:

  • AppTarget > info.plist:
    • CFBundleName = $(PRODUCT_NAME)
  • AppTarget > 构建设置:
    • Product Name = $(TARGET_NAME)(即MyApp
  • ExtensionTarget/info.plist:
    • CFBundleName = $(PRODUCT_NAME)(即MyExtension
    • CFBundleDisplayName = MyExtension

以下是用户可能会看到这些名称的所有位置:

  • 申请:

    • AppTarget/BuildSettings/ProductName

      这是用户 installs/runs 获取扩展的容器 .app。

  • 系统偏好设置 > 扩展:

    • AppTarget/BuildSettings/ProductName,在“添加的扩展”中。
    • AppTarget/BuildSettings/ProductName,在“Xcode 源代码编辑器”下方。
    • ExtensionTarget/info.plist/CFBundleDisplayName,在“Xcode 源代码编辑器”中。
  • Xcode > 编辑器菜单:

    • ExtensionTarget/info.plist/CFBundleName.

需要注意的一些关键事项:

    ExtensionTarget 的
  • CFBundleNameCFBundleDisplayName 出现在两个不同的地方,所以它们应该是相同的。
  • 从用户的角度来看,他们只关心扩展。但是,由于扩展必须与 .app 一起提供,我们必须向用户公开应用和扩展。因此,他们会在不同的地方看到这两个名字。您可能还希望使这些名称保持一致。
  • 尝试直接修改 AppTarget/info.plist/CFBundleName 似乎对用户看到的内容没有影响。您必须改用“产品名称”设置。