【问题标题】:How do you provide an icon for an action extension?您如何为操作扩展提供图标?
【发布时间】:2023-03-22 21:33:01
【问题描述】:

所有扩展程序类型都使用包含应用程序的图标,但操作扩展程序除外。 Apple 文档是这样说的:

在 iOS 中,自定义 Action 扩展使用其模板图像版本 包含您必须提供的应用程序图标。

但是它没有说明您必须如何提供图标。它说:

有关如何向应用扩展程序添加图标的信息,请参阅 创建资产目录并添加应用图标集或启动图像 设置。

但是“创建资产目录”和“添加应用程序图标”文档的链接是指向如何为 应用程序添加图标的链接,它们不包含有关如何专门为操作扩展添加一个图标。

扩展目标在 XCode 常规设置中不包含应用程序图标部分(与应用程序不同),因此它的图标可能必须通过资产目录添加。但是,即使在我将应用程序图标图像集添加到扩展程序的资产目录后,扩展程序的图标仍然没有出现。

我应该如何为操作扩展添加图标?如果它是通过它的资产目录,那么为什么当我将图标图像集添加到资产目录时它不起作用?

【问题讨论】:

标签: ios ios-app-extension


【解决方案1】:

首先,您需要有一个资产目录。你可能已经有了这个,但如果你没有,这很容易创建。

  1. 单击包含扩展文件的组。

  2. 文件菜单中,选择新建>文件...

  3. 在 iOS 部分,点击资产目录,然后点击下一步


其次,我们需要将应用程序图标添加到我们的项目中。请注意,图标必须有透明背景。如果您尝试使用具有纯色背景的图标,iOS 将不会显示该图标。

  1. 点击+按钮并选择App Icons & Launch Images > New iOS App Icon

  2. 默认情况下,Xcode 将调用图标AppIcon,但它也会警告您该名称正在使用中。要删除此警告,请选择其他名称(例如 AppIconExtension-iOS)。

  3. 将您的图标拖到 60px 占位符中。您还需要 120x120(又名@2x)和 180x180px(又名@3x)的图标。如果需要,您可以创建其他图标,但这些不是必需的。


第三,你需要告诉 Xcode 在构建扩展时使用图标。

  1. 在项目导航器中,选择树顶部的项目。

  2. 选择您的扩展作为目标,然后选择构建设置

  3. 搜索资产目录应用图标集名称并输入您的图标名称。

  4. 构建并运行扩展。

【讨论】:

  • 人机界面指南现在建议它约为 70x70pt。可悲的是,仍然没有关于如何添加这个图标的文档,所以我想它仍然应该放在 60pt iPhone App 插槽中?对于抱怨没有 76、83.5 和 1024pt 应用程序图标的警告,您会怎么做?
【解决方案2】:

为了让它工作,将资产添加到资产目录是不够的 - 它还需要设置扩展的构建设置部分的资产目录编译器选项,以指定应用程序图标集的名称资产目录:

【讨论】:

  • 对于 Xcode 15,扩展程序的 Build Settings 部分中的键已更改为“Primary App Icon Set Name”。
【解决方案3】:

我们需要一个用于扩展应用程序的单色图标,其尺寸和类型与我们在 Appicon 上设置的完全相同(只有名称和图标类型不同)。 首先,我们需要将资产包含到扩展目标中

第 1 步:- 要添加资产,请单击扩展方案->构建阶段 ->复制捆绑资源->单击+->添加资产或只需单击扩展目标成员资格中的资产即可添加。

参考下面的截图

第 2 步:- 现在设置扩展应用程序图标,单击扩展 来自目标区域的应用程序,转到构建设置 -> 搜索资产 目录编译器选项 -> 输入您的应用图标名称

参考下面的截图

【讨论】:

    【解决方案4】:

    操作扩展图标的文档并不是特别有用 - 请尝试 this answer,它提供了一个工作示例,或 this answer 以及聊天中继续讨论。

    对于图标本身,current guidance如下:

    为操作扩展图标使用模板图像。模板图像使用掩码来创建图标。使用具有适当透明度和抗锯齿的黑白,并且不要包含阴影。模板图像应位于大约 70 x 70 像素的区域中。

    【讨论】:

    • 啊,是的,让我着迷的是任何不透明的东西都会被绘制在共享图标中。我不明白为什么我的图标完全是灰色的。
    【解决方案5】:

    在尝试解决该问题时遇到了很多麻烦,但我最终找到了解决方法(我不喜欢它,但它有效):

    我最终安装了最新版本的 Xcode 7。 我使用 Xcode 7 打开了我的项目,然后按照此答案中提供的步骤操作:https://stackoverflow.com/a/27333408/3844377

    然后我从 Xcode 8 运行我的项目,它就像一个魅力。

    【讨论】:

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