Xcode 4.3:组织档案中iOS应用缺少图标

23
自从升级到Xcode 4.3.x之后,我在组织器中归档的iOS应用程序没有图标(但我的Mac OS X应用程序有图标)。
特别是一个iPad应用程序,我提供了2个图标(普通大小和Retina尺寸),但是我在我的存档中没有看到它的图标。
“xcode-select -print-path”返回“/Applications/Xcode.app/Contents/Developer”(我认为这是正确的设置,因为我想在终端上使用xcodebuild和xcron)。
编辑:经过调查,我发现截至Xcode 4.3.2,存档正在使用嵌入在iOS5 CFBundleIcons属性中的CFBundleIconFiles的第一项来显示,但是如果您保留文件的.png扩展名,则不起作用。
关于苹果文档所述内容:
使用CFBundleIcons键指定图标文件时,最好省略图像文件的文件名扩展名。如果包括文件名扩展名,则必须明确添加所有图像文件的名称(包括任何高分辨率变体)。当省略文件名扩展名时,系统会自动检测高分辨率变体的文件,即使它们未包含在数组中。
鉴于您不希望将图标文件命名为扩展名(参见上文),仅在.plist中提及“ipad”,当您的存档实际包含“ipad”和“ipad@2x”时,是行不通的。我必须在.plist中同时提及两者,以便在Retina设备上实际使用视网膜版本。
但是,没有.png扩展名的图标无法通过验证,当您尝试提交到应用商店时。图标现在让我的生活变成了噩梦。
有关TestFlight支持图标的信息:
TestFlight似乎不支持没有扩展名的图标文件,因为我删除了我的文件.png扩展名后,在此服务上看不到我的图标。

4
我知道“我也是”的评论并不被很欣赏,但这是个大问题。在我们公司,每个新的XCode都有这个问题。而且它也影响到旧的存档(这些存档在4.2版本中可以正常显示)。上传到应用商店可以正常工作并且应用程序也能按预期工作。这确实只是一个显示问题。但在之前的版本中,没有图标意味着构建过程出了问题,所以这有点令人害怕。 - Martin Ullrich
我不确定你是否应该担心可能出现的构建问题。虽然我的Organizer上没有图像,但是这些归档文件已经通过了苹果的验证并成功地提交到App Store。 - Dirty Henry
是的,这对我也有效...但以前当您错误配置构建设置(例如在库上“跳过安装:否”)时会发生这种情况,这会导致.xcarchive内部的目录结构混乱。 - Martin Ullrich
2
感谢评论确认图像确实上传到应用商店。我有点害怕。 - Danyal Aytekin
1
关于文件扩展名的那一点意味着,在列出 Info.plist 中的图标变体时,应省略文件扩展名,而不是从实际文件中删除文件扩展名。因此,例如,如果您的捆绑包包含 Icon.png 和 Icon@2x.png,则您的 Info.plist 应在 CFBundleIconFiles 数组中包含 Icon(而不是 Icon.png)。 - Simon Whitaker
6个回答

42

我遇到过完全相同的问题。 受到您有关 xcode-select 的陈述的启发,我首先尝试了以下操作:

xcode-select -print-path

结果如下:

/Developer

这显然是错误的。所以我首先关闭了 Xcode,然后:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

在我重新启动XCode之后,所有的图标都出现在了组织者中。

所以感谢您指引我正确的方向!但我意识到这可能不是您的解决方案。希望其他人也能受益!


很高兴我的评论有所帮助。不幸的是,我仍然无法在组织者中显示任何图标... :'( - Dirty Henry
这对我解决了问题。我刚刚在我的MBA上从MAS进行了OS X 10.7和Xcode的全新安装,但默认路径仍设置为“/Developer”。 - boliva
也为我解决了问题。目前,在组织者中显示的图标是默认(非@2x)图标的模糊放大版本。我不知道这是否代表了什么,或者应该在应用程序包或.plist文件中存在哪个图标才能使其看起来更清晰,但我们会看到的。总之,比没有图标要好。 - JK Laiho
总是咬我,尤其是在尝试不同的Xcode预发布版本时...谢谢。 - Daniel Schneller

3
在您的info.plist文件的CFBundleIconFiles中添加iTunesArtwork。

1
它在组织者中可以工作,但是当提交应用程序到App Store时,验证失败并显示一条消息,指出Info.plist中的一个文件在包中丢失(当iTunesArtwork确实是包的一部分时)。因此,我担心这个解决方案并不完全令人满意。 - Dirty Henry
1
CFBundleIconFiles 不应包含 iTunesArtwork。你可以在这里查看它:http://developer.apple.com/library/ios/#qa/qa1686/_index.html。 :) - Kjuly

1
在您的项目构建阶段中关闭图像压缩对我来说解决了这个问题(它可能是图像或PNG压缩,我现在无法检查),现在这是一个非常奇怪的情况,因为自从升级到4.3以来,我没有改变过我的图像格式,但在应用程序验证过程中,我收到了一个错误提示,告诉我我的Icon.png不是57x57,而它显然是的。我查找了如何解决这个问题,关闭图像压缩就是解决方法... 这似乎也让图标出现在组织者中.... 奇怪。

祝你好运!


设置名为“压缩PNG文件”。我将其设置为“否”并进行了归档,但没有得到更好的运气。 - Dirty Henry
好吧,尝试一下也值得,但这个新版本的Xcode似乎极其有问题。我的意思是,我一直听说它的问题左右逢源,而且我们俩都因为一个简单的图标不显示而出现了两种不同的原因,这并没有帮助解决问题。 - Mick MacCallum
1
我同意,但我仍然认为Xcode 4.x越来越好了。4.0版本只是垃圾。 :) - Dirty Henry
总的来说,毫无疑问Xcode是一个很棒的IDE,但出于某种原因,4.3.1版本似乎是最近发布的版本中最容易出现故障的。 - Mick MacCallum

0

我不明白。但是我正在运行OS 10.8.2和Xcode 4.5.2。曾经我的应用程序图标可以正常工作,但在某个时候它消失了。我尝试过重新启动、删除派生数据等方法,但都没有效果。

然而,我尝试了以下方法:

  1. 将icon.iconset文件夹复制到我的桌面上。
  2. 从Xcode中删除icon.iconset文件夹
  3. 将文件夹拖回Xcode(启用复制文件/文件夹)
  4. 重新构建,然后就出现了。

可能是魔法吧...


0

检查图标文件的名称是否为 "Icon.png" .... 而不是 "icon.png" 不是 "ICON.PNG" 也不是 "icon.Png"


0
你可能会误认为图标文件名是"icon.png",请检查一下图标文件名是否为"Icon.png",而不是"ICON.PNG"或者"icon.Png"。在我的情况下,文件名是"icon.png",我将其改为"Icon.png"后问题得到了解决。

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