首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iOS 8操作扩展图标在设备上为空(适用于模拟器)

iOS 8操作扩展图标在设备上为空(适用于模拟器)
EN

Stack Overflow用户
提问于 2014-09-09 06:16:03
回答 6查看 10K关注 0票数 16

Edit2:

我已经把这个问题提炼成我能做的最简单的项目了。这是设置。

我创建了一个新的单视图应用程序,并立即添加了一个新的Action扩展目标。我在.xcassets文件中创建了一个新的图标集,并添加了一个iPad视网膜大小的图标(我尝试填充所有图标,结果都是一样的)。

我确保在Copy Bundle Resources构建阶段包含了Images.xcassets:

然后,当在模拟器中运行应用程序时,一切都正常工作!

但是,编译到设备会产生一个空白图标:

我想这可能意味着我正在使用的PNG文件有问题,但这里看起来也是正常的:

有谁遇到过类似的情况吗?

我已经访问了像this这样的问题来寻找答案,我认为我做的一切都是对的,但我仍然没有在行动单中看到一个图标。

下面是我所做的:

  1. 创建了一个工作容器应用程序,它在Images.xcassets中存储了一个工作应用程序图标。然后,我创建了一个操作扩展目标,作为从我的包含应用程序到我的扩展的“复制包资源”构建阶段的同一个project.
  2. Added Images.xcassets的成员。我知道这是有效的,因为我可以在我的extension.
  3. In中使用UIImage.imageNamed(...)从.xcassets文件中加载图像我的扩展设置的常规选项卡我已经将“应用程序图标和启动图像”下的“应用程序图标源”指向Images.xcsets的资源名为"AppIcon",同样用于我的包含应用程序。
  4. 当它不起作用时,我做了一些进一步的阅读,发现动作扩展需要一个“阿尔法掩模”样式的图像。我在我的.xcassets文件中创建了另一个名为"AppIcon-2“的项目,并在其中填充了所有大小的应用程序图标,除了单色+透明的PNG。我将我的扩展程序的“应用程序图标和启动图像”指向这个新的"AppIcon-2"

我的操作扩展的图标仍然是一个空白的白色方块。我是不是遗漏了什么步骤?有没有一些非常特殊的阿尔法蒙版的格式?(我只是在photoshop中存为.png )。在.xcassets中,资源必须有一些非常具体的名称吗?

我也被一些答案(像上面链接的那个)弄糊涂了,这些答案似乎暗示通过将.xcassets添加到构建阶段就可以解决这个问题。大多数应用程序的图标不是完全不透明的吗?iOS如何从一个完全不透明的应用程序图标生成alpha蒙版?

编辑:我不完全确定是什么改变造成了不同(如果我弄清楚了,我会尝试推断并更新这篇文章),但我现在在模拟器上看到了一个基于"AppIcon-2“的alpha掩模的工作图标。我甚至没有想过要检查模拟器,但它确实证明了图标是从正确的位置拉出来的。该设备的某些特性正在以不同的方式处理图像。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-09-27 05:27:39

编辑:苹果在iOS8.1中修复了这个问题!

我认为在这一点上,答案是向Apple提交一份错误报告,地址是

https://feedbackassistant.apple.com/

如果你可以提交你的基本例子项目,这将有助于我们的事业!

这是我提交的一个:

摘要:动作扩展图标在消息和UIActivityViewController中显示得很好,但当它出现在照片应用程序中时,图标是空白的。

我认为这是Apple Photos应用程序的错误

重现步骤:按照这些说明操作,但要从照片应用程序进行

http://www.photoinvestigator.co/blog/how-to-use-ios8-action-extensions/

预期结果:期望元数据扩展模块的图标像在http://www.photoinvestigator.co/blog/how-to-use-ios8-action-extensions/中一样正确显示

实际效果:图标是纯白色的

版本: iOS 8.0.2、iOS 8.0.0

注:iOS 8 action extension icon is blank on device (works in simulator)

这是一个在Messages应用程序中使用我的扩展的示例,图标显示正确:http://www.photoinvestigator.co/blog/how-to-use-ios8-action-extensions/,但在苹果的照片应用程序中执行这些步骤,导致图标不能正确显示。

配置:任何运行iOS8的iOS设备。第三代iPad、iPhone 5、iPhone 5c、iPhone 6 Plus

附件:

编辑:他们将其关闭为ID:工单ID: 17208813进度!

票数 4
EN

Stack Overflow用户

发布于 2014-09-09 07:06:34

您没有提到扩展的Info.plist设置,所以我假设您没有包含图标文件的条目。您需要在NSExtensionAttributes字典中添加一个名为NSExtensionServiceToolbarIconFile的键。该值是图标文件的名称。

至少它应该是这样工作的。实际上,您目前似乎需要一个带有图标名称的顶级CFBundleIconFile键。据推测,只有在NSExtensionServiceToolbarIconFile不存在的情况下才会使用它,但至少现在是必要的。我两者都有,这可能不是必须的,但我更喜欢将文档中记录为正确的密钥留在适当的位置,以防它在某个时候开始工作。

票数 2
EN

Stack Overflow用户

发布于 2014-09-10 10:58:25

我也有同样的问题。对我来说起作用的是遵循Tom Harrington的回答,但也要确保扩展图标的“目标成员”(右侧窗格)包括扩展目标和应用目标。(在构建阶段下,它也应该列在两个目标的Copy Bundle Resources下。)

另外,注意你的扩展图标必须有一个完全透明的背景,而不是纯白的。任何白色或透明以外的任何颜色都将呈现为纯色深灰色。

希望这能有所帮助。抱歉,我想把这个作为评论添加到Tom的回答中,但是Stack Overflow因为我的名声不让我这么做。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25733932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档