iOS系统中,白色背景的应用图标显示为黑色。

5

我正在使用React Native构建应用,但我不确定这是否是React Native的问题。

仅在iOS上出现令人困惑的异常。我的应用程序图标有一个白色背景,而非透明背景,在iOS上却呈现为黑色。Android工作正常。我尝试从Xcode中删除图标,AppIcon screenshot 删除ios/build文件夹,清除缓存,重新链接,关闭模拟器和Metro,然后重新启动,但仍然是黑色的。我不知道这里发生了什么。这真的让我抓狂。

而且,我不知道它为什么还会出现,因为我已经将它从ios中移除了,这显然意味着它仍然被缓存。有一点需要注意的是,各种像素密度的图标仍然存在。可能是因为缺少1024pt图标,Xcode会从其他大小中“借用”一个吗?然而,这并不能解释黑色背景,因为所有的图标都有白色(由图标的创建者确认)。

1个回答

0
我在我的本地iOS应用中遇到了类似的问题,其中一组白色背景的图标出现为黑色。在我的情况下,问题的原因是代码中将图标设置为渲染为“模板图像”(UIImageRenderingModeAlwaysTemplate)。解决方法是将其呈现为“原始图像”(UIImageRenderingModeAlwaysOriginal)。
在您的情况下,您可以在以下两个位置检查:
  1. 在资源目录部分,针对相关图标检查“渲染为”字段的值是否设置为“原始图像”,而不是“模板图像”。
  2. 在您的Objective C / Swift代码中,检查您如何使用此图标。确保从上面的图标创建UIImage时,以UIImageRenderingModeAlwaysOriginal模式呈现它。
    NSString * str = [NSString stringWithUTF8String:resourceName.c_str()]; return [[UIImage imageNamed:str] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

感谢您的回复。我是一名JavaScript开发人员,所以只有在必要时才会使用Xcode。因此,我不理解您的步骤。对于#1,我不知道在哪里找到该部分,对于#2,我对obj-c或swift没有任何想法。我的所有源代码都是JavaScript,而Xcode只是一个编译器层。如果有React Native经验的人可以帮忙,我将非常感激。 - Mike S.
请参考苹果文档中的资源目录:https://developer.apple.com/library/archive/documentation/Xcode/Reference/xcode_ref-Asset_Catalog_Format/index.html - Ankit Aggarwal
我重新构建了整个图标集。这解决了问题。不确定问题出在哪里。 - Mike S.
@MikeS,你所说的“重建整个图标集”是什么意思?你是重新生成了所有的图片尺寸吗? - Shumii
我18个月前发布了那篇文章。我想我当时是使用任何图标生成器来实现这一点的。很抱歉我不能更具体地说明。 - Mike S.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接