gpt4 book ai didi

xcode - 如何在我的Xcode项目中添加图标?

转载 作者:行者123 更新时间:2023-12-01 08:34:12 27 4
gpt4 key购买 nike

我有一个Mac OSX的Xcode项目,我想在项目中添加一个图标文件(.icns)并将其设置为“应用程序图标”。我该怎么做?

最佳答案

这里的关键是您需要一个ICNS(图标集)文件。

Human Interface Guidelines中描述了创建此方法的正确方法,Apple迷宫般的小文档迷宫中的各种用户指南和引用指南中介绍了详细信息,但在此将对其进行总结。

有第三方工具可以执行此操作,还有Photoshop,GIMP,Illustrator等的插件,可以输出正确的.icns文件。但是请确保,如果您使用这样的东西,那么它是最新的,因为Apple一直在更改规则。

如果您需要手动执行此操作,请执行以下操作:

首先,创建一组不同大小的PNG文件。您需要的确切 list 会随着时间的推移而变化。如果该链接的持续时间长于当前列表,请参见Provide the Correct Resources and Let OS X Do the Work;否则,您可以在http://developer.apple.com上自行搜索。但是,截至2013年初,每个版本分别为512x512、256x256、128x128、32x32、16x16和@ 2x版本。所有这些都应在其中嵌入sRGB颜色配置文件。它们应命名为icon_512x512@2x.pngicon_512x512.png等,或MyApp_512x512@2x.pngMyApp_512x512.png等。将它们全部放在一个名为MyApp.iconset的目录中。

“但是等等!我只想要一个图标,我不想要所有这些尺寸!”好吧,您确实想要所有这些尺寸。缩小到32x32时,您的512x512图标看起来会很恐怖。在Retina Mac上,当您的图标放大到两倍分辨率时,它变得更锯齿,而不是变得更清晰。另外,如果您想进入App Store,如果您没有苹果,Apple也会拒绝您。但是,如果您坚持要这样做,则只需将icon-512x512.png放入文件夹中,然后按照其余步骤进行操作即可,它可以正常工作。

在终端上,cd进入父目录,然后键入iconutil -c icns MyApp.iconset。您将获得一个名为MyApp.icns的文件。

现在,您可以执行道格拉斯建议的步骤,它实际上将起作用。在Xcode中,在“项目浏览器”中选择项目,在项目侧栏中选择应用程序目标,选择“摘要”选项卡,然后将MyApp.icns从Finder拖到“应用程序图标”框中。

除了将MyApp.icns添加到Project Navigator外,这在GUI中可能没有任何可见的效果。换句话说,您可能仍会看到“?”图标。这似乎是Xcode 4.5中的错误。如果您遵循两个版本之前的HIG的过时建议,则Xcode始终显示该图标,但是如果您遵循当前的HIG,则不显示该图标。去搞清楚。希望苹果有一天会解决。

但是就目前而言,这并不重要。生成项目,然后查看MyApp.app,它将在Finder中,Dock上等中显示您的图标。

现在,我知道您不想以10种不同的形式绘制同一张图片,而只是想要一些简单的东西。只要您不想进入App Store,就可以通过两种方式逃避作弊:

  • 使用您喜欢的工具将512x512(如果支持高分辨率,则将1024x1024像素“512x512 @ 2x”像素)缩放为所有其他尺寸。
  • 在图标集中只创建512x512图片的.icns文件。

  • 第二个更简单,并且不那么欺骗,最终Finder可能会缩放您的512x512图像,无论如何都会如此。

    最后,如果您手动编辑了 Info.plist或更改了build设置(或者您正在使用从简单得多的Xcode版本导入的项目),则仅拖动图像可能还不够。如果您需要手动执行相同的步骤,它们是:
  • MyApp.icns必须在项目导航器中作为项目中的文件。 (您可以将它从Finder拖到此处。)
  • 在构建阶段中,副本捆绑资源应包括MyApp.icns。 (您可以将其从Project Navigator拖到此处。)(如果由于某种原因未使用正常的构建阶段,则需要其他方法将其在构建时复制到Contents/Resources/MyApp.icns中。)
  • 您的Info.plist应该有一个名为Icon fileCFBundleIconFile(原始名称MyApp),没有扩展名。

  • 这里的所有都是它的。

    关于xcode - 如何在我的Xcode项目中添加图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14347985/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com