【问题标题】:iphone SDK: Universal binary app icon is blank for iPhone 3Giphone SDK:iPhone 3G 的通用二进制应用程序图标为空白
【发布时间】:2011-04-30 12:30:12
【问题描述】:

我有一个通用的二进制 iPhone/iPad 应用程序。当我在 iPhone4 和 iPad 上安装应用程序时,应用程序图标正确显示。但是,当安装在 iPhone 3G 上时,该图标为空白(灰色)。我已经尝试了所有我能想到的可能会解决此问题的方法,并希望得到建议。我遵循了此处找到的通用应用程序的 Apple 图标指南:http://developer.apple.com/library/ios/#qa/qa2010/qa1686.html

  1. 我有一个名为 Icon.png 的 57x57 图标,用于 iPhone 3G 图标
  2. 在我的 plist 中,我有一个 CFBundleIconFile 条目,其值为“Icon.png”。根据 Apple 的说法,应该包含此密钥以向后兼容运行早于 v3.2 的 iOS 的 iPhone。
  3. 此外,我有一个 CFBundleIconFiles 条目,列出了各种大小的图标——我在上面的开发人员链接中包含了 Apple 提供的所有推荐图标。
  4. iphone 模拟器、iPad 模拟器、iPhone 4 和 iPad 上的图标看起来不错
  5. 我尝试清理项目
  6. 我确认 Icon.png 正在被复制到目标中
  7. 我确认 Icon.png 在应用文件中。
  8. 我确认 Icon.png 为 57x57。
  9. 我已验证该图标没有 Alpha 通道。事实上,我使用以前的应用程序中的一个图标进行了测试,该应用程序确实有效,并且 仍然在 iPhone 3G 上显示为空白。
  10. 我尝试将图标保存为 8 位和 24 位 png,无论是否具有透明度。
  11. 在重建之前,我删除了应用程序并重新启动了 iPhone。

【问题讨论】:

    标签: iphone icons


    【解决方案1】:

    试试CFBundleIconFiles(值类型为数组)

    作为 Icon.png, Icon~iPad.png, Icon@2x.png

    【讨论】:

    • 这里不是苹果推荐的命名:developer.apple.com/library/ios/#qa/qa2010/qa1686.html
    • 我试了一下——仍然没有图标。我很好奇您在哪里看到在图标名称中使用波浪号的建议?
    • 请注意,有人将此答案标记为有用,但事实并非如此。波浪号的使用不是 Apple 推荐的命名约定的一部分,也没有解决我遇到的问题。
    【解决方案2】:

    可能存在两个同名的图像。请也检查一下。

    一切顺利。

    【讨论】:

      【解决方案3】:

      尝试以上所有方法,在构建到您的设备之前,从手机中删除应用程序(可选择重新启动),然后再重新构建到设备上。

      【讨论】:

        【解决方案4】:

        我遇到了与您遇到的问题类似的问题,这让我发疯了,直到我终于弄明白了。问题似乎是,如果您在同一设备上有两个版本的应用程序,该设备将显示该应用程序早期版本的应用程序图标。我很确定 Apple 的图标显示代码中有一些缓存错误会导致此问题。

        这些是我得到的错误的大致重现步骤(我几乎可以肯定你看到了同样的错误):

        1. 为 MyApp 创建了图标。
        2. 在设备 Foo 上构建 MyApp。
        3. 我在我的设备上看到了 MyApp 的图标(很好!)。
        4. 更改了 MyApp 的图标。
        5. 为 MyApp 创建了新的应用 ID。
        6. 为 MyApp 创建了新的配置文件。
        7. 已更改 MyApp 的 Xcode 项目以使用新的配置文件。
        8. 在设备 Foo 上构建 MyApp。
        9. Xcode 在 Device Foo 上安装 MyApp 的新副本(因为 App ID 已更改)。旧应用仍然存在(现在几乎是自重)。
        10. --> Device Foo 显示 MyApp 的旧图标(糟糕!)。

        修复:

        1. 删除 MyApp 的旧副本
        2. 删除 MyApp 的新副本
        3. 从 Xcode 构建和启动 MyApp
        4. --> 新图标应该会出现在设备上。

        注意到我没有在第 4 步和第 5 步之间构建和启动我的项目?听起来您可能对您的 3GS 上的应用程序做了类似的事情,所以我建议您仔细查看 3GS 上的应用程序,以尝试找出暴露此 Apple 错误的应用程序。一旦你找到它,只需删除它。无论如何,清理设备上的所有旧垃圾可能是个好主意。

        在使用多个设备时,这是一个非常容易遇到的错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-27
          • 1970-01-01
          • 2014-12-22
          • 2010-09-08
          相关资源
          最近更新 更多