2011-03-13 119 views
2

已经输入并测试了一些示例代码,并且一切似乎都正常。就在那时,我突然遇到了这个非常令人沮丧的尝试向项目添加图标的问题。已经下载了一个图标文件(扩展名:icns)到我的桌面,并将它拖到xCode中的“Resources”组中。然后从xCode出现一个对话框,其中我检查了2个选项:“将项目复制到目标组的文件夹(如果需要)”和“递归创建任何添加的文件夹的组”。但是当我按下“添加”按钮时,会出现一个“警报”消息框。它说“无法将图标复制到......”。希望有人在这方面知道肯定会给我一些提示...无法将图标添加到资源

+0

你可以添加其他种类的资源吗?像.png文件?也许你下载的文件有问题。 – TalkingCode 2011-03-13 08:16:39

+0

我想我确实设法将文件添加到“资源”组中。但是示例程序尽管完美地工作,但完全没有使用新图标。所以我从“资源”组中删除它。现在我不能再把它加回去...... – Stanley 2011-03-13 08:26:50

+0

好吧,当你从Xcode中“删除”某些东西时,它通常会给你2种选择:'删除引用'和'也移动到垃圾箱'。您碰巧选择了“删除引用”,它只是从Xcode项目中删除对这些文件的引用,但将项目保留在项目文件夹中。这就是为什么试图再次添加该项目失败(请参阅下面的答案)。 – NSGod 2011-03-13 08:32:34

回答

2

此失败消息通常是由于尝试添加文件(即在项目文件夹之外),当目标文件中已存在目标位于项目文件夹内的位置。

例如,假设您的项目文件夹为~/Developer/CoolProject/,而Xcode项目为~/Developer/CoolProject/CoolProject.xcodeproj。如果您使用所描述的选项将图像coolImage.png从桌面拖到Xcode,Xcode会将图像文件复制到~/Developer/CoolProject/coolImage.png。如果您再重复这个相同的过程,它将会在第二次出现该错误消息时失败。

我会做的是,在Finder中,检查您的项目文件夹里面,看看icns文件是否已经被复制到项目文件夹中。如果项目文件夹中已经存在icns文件的副本,并且icns文件未在Xcode的Groups &文件列表中列出,则可以通过将现有副本(位于项目文件夹内)拖动到Xcode项目窗口调出添加文件对话框。你可以保持和以前一样的选项,这次Xcode不需要复制图像,所以你可以避免这个错误。

[已更新]好的,基于上面的评论,你需要做的是在Finder中去掉现有的文件(换句话说,将它移到垃圾箱) 。然后,您可以重新添加具有相同名称的图标(从项目文件夹之外的位置),而不会出现错误。此外,在将来,请记住,如果您不再需要项目文件夹中未使用的项目,则可以考虑在从Xcode中删除文件时使用Also Move to Trash选项。

此外,您可能需要仔细检查以确保所涉及的文件作为活动目标的一部分包含在内。例如,如果将文件添加到项目中,但未选中该文件的“包含在活动目标中”复选框(如下图中的ReadMe.rtfd文件),则该文件将不会复制到您的应用程序包中编译时间或在运行时可用。

enter image description here

(到该活动的目标复选框列添加到组&文件列表,在表列标题视图右击并从菜单中选择目标成员)。

+0

如果您希望该图标显示为应用程序或特定文件类型,请确保将该文件设置为Xcode中相应项目的图标。在文档类型列表中有一个地方可以告诉Xcode哪个图标转到哪个文件类型以及一个地方来指示应用程序图标(我将在此之后设置此图标以添加图标文件)。 – theMikeSwan 2011-03-13 08:34:14

+0

你是对的,图标文件仍然在项目文件夹中,而不显示在Resources组下。我已经完成了你的建议,将现有文件拖到资源组中,然后打开“添加文件”对话框。而这一次,我推入“添加”按钮没有问题。但问题是,示例程序仍然没有使用新的图标。任何额外的提示? – Stanley 2011-03-13 08:52:29

+0

假设您希望新添加的图标文件成为应用程序图标,请转到目标的属性部分(在3.x中,选择“组和文件”列表下的“目标”,然后选择目标并获取信息,然后查看属性选项卡;在4.x中选择项目的根级,然后在摘要选项卡中查找)将文件名输入到图标文件点(或将文件拖到那里)。也正如NSGod所说的确保文件被包含在Copy Bundle Resources构建阶段中。 – theMikeSwan 2011-03-13 09:07:32