无效的苹果手表图标文件名必须匹配模式“* <dimension> @ <scale> x.png”。

21
我正在尝试更新我的应用,以包括Apple Watch的功能。然而,每当我验证构建时,都会出现如下截图中详细说明的错误。从底部错误看,我的文件名似乎符合模式,所以我不知道问题在哪里。如果我能够正确地为1个图标找到模式,那么我就可以将相同的逻辑应用于整个应用程序,但是我并没有取得太大成功。

你们有人遇到过这个问题吗?
9个回答

32

问题出在我仍然使用了watchOS 1 Long Look图标(44X44@2x),而事实上我已经不再支持watchOS 1。当我取消了资源中的watchOS 1.0选项并删除了不再需要的图标后,问题就解决了。

图片描述

2
我一段时间前添加了那个图标,因为没有它就无法提交,现在我又不得不将其删除。感谢苹果,让我们的生活不太容易!=) - Guido Hendriks

13

我遇到了同样的问题,以上解决方案都不起作用。

取而代之的是,我导出了一个IPA文件,并查看了它的内容。结果发现我的图标有重复,并以不同的名称命名。

我将我的文件按照我找到的文件重新命名,然后将它们拖放到AppIcon的相应位置,进行归档、提交,这样就可以解决问题了!

WatchKit图标的正确命名方式:
AppIcon24x24@2x.png
AppIcon27.5x27.5@2x.png
AppIcon29x29@2x.png
AppIcon29x29@3x.png
AppIcon40x40@2x.png
AppIcon44x44@2x.png
AppIcon86x86@2x.png
AppIcon98x98@2x.png


将我的手表图标重命名为上述名称是帮助我完成这个艰巨过程的步骤之一。 - Chris Allinson

11

当我尝试提交时,我遇到了同样的问题。我的问题在于,我将图像资源文件与我的iOS应用程序目标和WatchKit应用程序目标共享。您需要为WatchKit应用程序单独创建一个图像资源文件,并且它应该仅包含适用于Apple Watch的图像。这对我有用。


谢谢。这方面有文档吗?我搜索了一段时间,但没有找到苹果公司详细讨论此事的任何内容。 - Ben-G
这个没有记录,因为我认为这是一个漏洞。我们已经告诉了苹果公司。 - Idan
我没有找到任何关于这个的文档,这只是对我有效的方法。 - Stephen Johnson
在我的 WatchKit 应用的 images.xcassets 文件中,我将“AppIcon”命名为“AppIcon-Watch”,并在项目设置中链接了它(目标 = WatchKit 应用)。 - Chris Allinson
1
Xcode 9 似乎也无法正确设置 watchOS 1 应用程序图标。尽管给资产目录提供所有需要的内容,但仍会出现提交错误。 - Tom Hamming

1
好的,我最终自己解决了:以下是我的做法,试了大约30次提交后,我终于没有问题了。只有最后一步是100%有影响的,但我想分享一下,因为这个问题花费了我大约6个小时(还有其他垃圾问题需要解决,通常情况下,我不会为一个普通的通用iOS应用程序修复这些问题)
1)通过转到Library/Developer/Xcode/之类的位置删除所有派生数据。
2)清除,清除文件夹
3)将所有手表图标重命名为这些名称:
AppIcon24x24@2x.png
AppIcon27.5x27.5@2x.png
AppIcon29x29@2x.png
AppIcon29x29@3x.png
AppIcon40x40@2x.png
AppIcon44x44@2x.png
AppIcon86x86@2x.png
AppIcon98x98@2x.png

4) 使用一个Images.xcassets文件。该文件包含3个主要对象: a)iPhone和iPad的图标 b)Watch的图标 c)iPhone和iPad的启动屏幕图片

5) 通过在Xcode窗口右上角点击显示/隐藏实用程序来清理Images.xcassets(仅在第一个对象中拥有iPhone和iPad的图标,仅在第二个对象中拥有Watch Kit的图标)。还要删除CarPlay图标

5.5) 还要进入常规应用程序的目标,在通用部分将应用程序源图标设置为仅带有iPhone / iPad图标的图标。然后进入watch kit应用程序,并将应用程序源图标设置为仅带有watch kit图标的图标

6) 针对每个目标的每个文件夹,进入info.plist并删除所有图标键。每个info.plist中都有1-3个这些内容。我只是将它们删除了。可以通过点击目标或查看文件夹层次结构来找到info.plist。这些是您需要查看的3个info.plists: a)常规应用程序的plist b)watch kit扩展名的plist c)watch kit应用程序的plist

7) 最后,我进入了手表应用程序的plist文件并添加了一个新键:CFBundleIconFiles。当我添加这个新的键时,Xcode将其更改为“图标文件”。这是一个数组,我逐个添加了每个手表图标文件的名称:


    AppIcon24x24@2x.png
    AppIcon27.5x27.5@2x.png
    AppIcon29x29@2x.png
    AppIcon29x29@3x.png
    AppIcon40x40@2x.png
    AppIcon44x44@2x.png
    AppIcon86x86@2x.png
    AppIcon98x98@2x.png

终于成功了!希望这能帮助那些卡在这个问题上的人。P.S. 如果有格式问题,请原谅。Stack认为我正在编写代码,所以我必须缩进,但实际上不是。


1

我刚刚使用了this template,一切顺利,只需确保您的图片没有阿尔法通道即可。


1
我也遇到了同样的问题。以下是我的解决方法:
1)将我的名称格式更改为:Icon_24@2x.png
2)从派生数据中删除文件(我使用了Watch Dog for XCode - https://itunes.apple.com/au/app/watchdog-for-xcode/id734258109?mt=12
3)关闭并重新打开Xcode 然后我的存档验证成功了。我认为移除派生数据是真正的解决方法,但同时我也更改了图标名称格式,因此不能确定名称更改是否也有所贡献。
希望这可以帮到你。

删除派生数据是帮助我完成这个艰巨过程的步骤之一。 - Chris Allinson

0

我遇到了同样的问题,浪费了我整整一天的时间来解决这个问题。在找到解决方案之前,我尝试了你们所有人发布的建议,但最终都失败了。
这是我愚蠢的解决方法:所有应用程序图标都应该具有相同的颜色配置文件,在我的情况下,其中两个图标与其他图标不同。在我更改了另外两个颜色格式后,它就可以正常工作了。

color profile comparison


0

0

我遇到了同样的错误,但最终发现我的27.5x27.5@sx.png图像实际上是56x56,但苹果需要它是55x55。


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