8

我开始在 iOS 6 下编写这个应用程序,我设法修复了有关图像和已弃用 API 的所有问题,没有问题。

我正在创建一个新图标以支持 iOS 7 样式,但无论我是否使用资产目录和/或图像的直接路径,只要我在启动应用程序时添加新参考,我都会呈现黑色图标。

我显然做错了什么。

这是我的资产目录,显示了所有映射的图像。它们实际上并没有出现在应用程序中,而且我在所有 iOS 应用程序中都有黑色图标。

在此处输入图像描述

每当我启动时,我都会得到一个黑色图标。它与 Info.plist 文件中的某些设置有关吗?

这里是。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    <key>CFBundleDisplayName</key>
    <string>${PRODUCT_NAME}</string>
    <key>CFBundleExecutable</key>
    <string>${EXECUTABLE_NAME}</string>
    <key>CFBundleIcons</key>
    <dict/>
    <key>CFBundleIcons~ipad</key>
    <dict/>
    <key>CFBundleIdentifier</key>
    <string>com.neckbeardrepublic.${PRODUCT_NAME:rfc1034identifier}</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>7.0</string>
    <key>CFBundleName</key>
    <string>${PRODUCT_NAME}</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>UIAppFonts</key>
    <array>
        <string>Lato-Black.ttf</string>
        <string>FontAwesome.ttf</string>
    </array>
    <key>UIPrerenderedIcon</key>
    <true/>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
        <string>armv7</string>
    </array>
    <key>UIStatusBarHidden</key>
    <false/>
    <key>UIStatusBarHidden~ipad</key>
    <true/>
    <key>UIStatusBarTintParameters</key>
    <dict>
        <key>UINavigationBar</key>
        <dict>
            <key>Style</key>
            <string>UIBarStyleDefault</string>
            <key>Translucent</key>
            <false/>
        </dict>
    </dict>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UIViewControllerBasedStatusBarAppearance</key>
    <false/>
</dict>
</plist>

非常令人沮丧。我也只是尝试提供特定文件,但也没有多大用处。

谁能指出问题?

4

1 回答 1

18

首先,检查您用于应用程序图标的图像文件是否合适。有关详细信息,请参阅Apple 的应用程序图标人机界面指南,但与此问题特别相关:

避免透明。应用程序图标应该是不透明的。如果图标的边界小于推荐的尺寸——或者你使用透明度来创建“透视”区域——生成的图标可能会出现在黑色背景上,这在用户选择的漂亮壁纸上看起来特别没有吸引力。

如果您使用透明度,例如透明背景上的黑色图像,则图标在 iOS 中可能会显示为全黑。

接下来,有几种方法可以告诉 iOS 应用程序的图标。新机制是使用资产目录;Apple 有关于迁移应用程序图标或启动图像集的指南。

旧的简单方法是将图标文件名添加到 Info.plist 文件中CFBundleIcons。根据 Apple 在App-Related Resources上的文档:

无论您的应用程序有多少不同的图标,您都可以使用文件CFBundleIcons中的键来指定它们Info.plist。该键的值是一个字符串数组,每个字符串都包含一个图标的文件名。文件名可以是您想要的任何名称,但所有图像文件都必须为 PNG 格式,并且必须位于应用程序包的顶层。(避免使用交错的 PNG。)当系统需要一个图标时,它会选择大小最接近预期用途的图像文件。

于 2013-11-10T20:19:04.233 回答