【问题标题】:Where do all the Project Name and Target Names appear to a user in an Xcode extension?所有项目名称和目标名称在 Xcode 扩展中向用户显示在哪里?
【发布时间】:2021-04-23 04:16:03
【问题描述】:
我想创建一个新的 Xcode Source Editor Extension。这涉及创建:
- 一个新的 Xcode 项目。
- 新的 Xcode 源代码编辑器扩展目标。
显然两者都需要名称。我想知道这些名称出现在哪里可以帮助我决定应该为这些名称添加多少上下文。例如,如果它出现在“Acme Corp”的菜单项下,则称其为“Xcode Extensions”就足够了。如果它没有出现在这样的名称下,那么在标题中包含 Acme 是有意义的。
此外,我尝试更改 Target 的 CFBundleDisplayName,发现由于某种原因它没有更新编辑器菜单项名称。
用户会在哪里看到这些名称以及控制它们的设置是什么?
【问题讨论】:
标签:
ios
xcode
xcode-extension
【解决方案1】:
首先,我将定义以下内容:
- AppTarget:应用程序的目标,在创建新的 macOS 应用程序时创建。
- ExtensionTarget:扩展的目标,在添加“Xcode Source Editor”目标后创建。
而且,我假设您将应用程序命名为“MyApp”,扩展名为“MyExtension”。
这会设置一个具有以下选项的项目:
- AppTarget > info.plist:
CFBundleName = $(PRODUCT_NAME)
- AppTarget > 构建设置:
-
Product Name = $(TARGET_NAME)(即MyApp)
- 扩展目标/info.plist:
-
CFBundleName = $(PRODUCT_NAME)(即MyExtension)
CFBundleDisplayName = MyExtension
以下是用户可能会看到这些名称的所有地方:
-
应用程序:
-
系统偏好设置 > 扩展:
-
AppTarget/BuildSettings/ProductName,在“添加的扩展”中。
-
AppTarget/BuildSettings/ProductName,位于“Xcode 源代码编辑器”下方。
-
ExtensionTarget/info.plist/CFBundleDisplayName,在“Xcode 源代码编辑器”中。
-
Xcode > 编辑器菜单:
-
ExtensionTarget/info.plist/CFBundleName。
需要注意的一些关键事项:
-
ExtensionTarget 的
CFBundleName 和CFBundleDisplayName 出现在两个不同的位置,因此它们应该是相同的。
- 从用户的角度来看,他们只关心扩展。但是,由于扩展必须与 .app 一起提供,我们必须向用户公开应用和扩展。因此,他们将在不同的地方看到这两个名字。您可能还希望这些名称保持一致。
- 尝试直接修改
AppTarget/info.plist/CFBundleName 似乎对用户看到的内容没有影响。您必须改用产品名称设置。