【问题标题】:Missing AppIcon in Organiser管理器中缺少 AppIcon
【发布时间】:2013-09-30 20:49:39
【问题描述】:

我最近迁移了我的应用程序以支持 iOS7,并在此过程中更新了我的应用程序图标以使用资产目录;这一切都在应用程序中运行良好。但是,在 Organizer 和 TestFlight 中,我的应用图标不见了。

TestFlight 中也发生了同样的情况,这意味着我的包中缺少某些内容。任何帮助将不胜感激。

【问题讨论】:

  • 尝试删除管理器中的应用并重新创建
  • @Tendulkar 我也在一个新项目上测试了这个,同样的事情发生了,所以我认为这行不通;我还想我会丢失所有存档历史记录,以便从 Organizer 中删除它
  • 请在您的项目中添加 iTunesArtwork 并删除该应用,然后再次...
  • @Deepesh 您能否更具体地说明您认为我应该尝试什么以及为什么您认为这会奏效?谢谢
  • 我也有类似的问题。但是对我来说,图标出现在组织者中,而不是在试飞中

标签: ios xcode5


【解决方案1】:

因此,您似乎仍然需要在应用 plist 中有 Icon files 条目,该条目指向作为应用中资源的图标;即使当我转换到目录时 Xcode 删除了它;这是我手动创建的条目,同时还保留了资产目录:

请注意,我已经使用不同的图标对此进行了测试,此设置不会影响应用程序在运行时实际使用的图标;此条目似乎仅由 Organizer 和 TestFlight 使用,从而解决了我的问题。

【讨论】:

  • 太棒了!对我有用的是在 info.plist 中简单地让“图标文件”等于“Icon.png”。我还将文件 Icon.png、Icon@2x.png、Icon-72.png 和 Icon-72@2x.png 添加到 Xcode(我的是通用应用程序)。
【解决方案2】:

是的,在使用 资产目录 时,您可能需要执行以下操作以链接应用的图标并为 Ad-Hoc 分发 / 生产 出现在 OrganiserTest flight 以及可能未知的 AppStore 位置。


创建 Asset Catalog 后,记下 Xcode 中 .xassets 中列出的 Launch Images 和 App Icon 名称。

默认情况下应该是

  • AppIcon
  • LaunchImage

[要查看此内容,请单击 Xcode 中的 .xassets 文件夹/图标。] (这可以更改,所以请注意这个变量以备后用)


现在每次构建都会在您的 .app 中创建以下数据结构:

对于应用图标:

iPhone

  • AppIcon57x57.png(iPhone 非视网膜)[注意图标名称前缀]
  • AppIcon57x57@2x.png(iPhone 视网膜)

并且其他每个图标分辨率的格式都相同。

iPad

  • AppIcon72x72~ipad.png(iPad 非视网膜)
  • AppIcon72x72@2x~ipad.png(iPad 视网膜)

(对于 iPad,后缀略有不同)


主要问题

现在我注意到,在 Xcode 5.0.1 中的 Info.plist 中,它在完成资产目录的创建后自动尝试为“Icon files (iOS 5)”创建密钥,但未能成功。

如果它确实成功创建了引用/这可能已被 Apple 修补或刚刚起作用,那么您所要做的就是查看图像名称以验证上面列出的格式。

最终解决方案:

将以下密钥添加到您的主.plist

我建议您使用外部文本编辑器(例如 TextWrangler)打开您的主 .plist,而不是在 Xcode 中复制并粘贴以下密钥。

<key>CFBundleIcons</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>AppIcon57x57.png</string>
            <string>AppIcon57x57@2x.png</string>
            <string>AppIcon72x72~ipad.png</string>
            <string>AppIcon72x72@2x~ipad.png</string>
        </array>
    </dict>
</dict>

请注意,我只包含了我的示例分辨率,您需要将它们全部添加。


如果您想在没有外部编辑器的情况下在 Xcode 中添加此密钥,请使用以下内容:

  • Icon files (iOS 5) - 字典
  • Primary Icon - 字典
  • Icon files - 数组
  • Item 0 - 字符串 = AppIcon57x57.png 以及其他项目/应用图标。

现在,当您最终归档项目时,最终的 .xcarchive 有效负载 .plist 现在将包含上述要构建和使用的图标位置。

不要在任何 .plist 中添加以下内容:这只是 Xcode 现在将为您的最终负载生成的示例

<key>IconPaths</key>
<array>
    <string>Applications/Example.app/AppIcon57x57.png</string>
    <string>Applications/Example.app/AppIcon57x57@2x.png</string>
    <string>Applications/Example.app/AppIcon72x72~ipad.png</string>
    <string>Applications/Example.app/AppIcon72x72@2x~ipad.png</string>
</array>

【讨论】:

  • IconPaths 甚至从未在存档的 Info.plist 中生成。以前都可以,但现在不行了,我不知道为什么...
【解决方案3】:

迁移到资产目录的另一个可能的问题。

在项目设置中有两种定义图标的方法:CFBundleIconFiles 从 iOS3 开始,CFBundleIcons 从 iOS5 开始。较旧的,尽管较旧,但与向后兼容性的常识相反,still takes precedence。在直接迁移到资产目录之前,我使用的是 CFBundleIcons。在我迁移之后,我删除了CFBundleIcons 指向的原始文件,因为,你知道,现在我有了闪亮的新资产目录,对吧? XCode 做了三件事:

  • 它从常规项目设置中隐藏了以前CFBundleIcons 的可视化编辑。既然您已经选择了闪亮的新资产目录,为什么还需要它,对吧?
  • 它不会删除 Info.plist 的原始 CFBundleIcons 键,但是,通过选择资产目录,您可以清楚而响亮地说您不会低于 iOS5
  • 它也不验证所述密钥。任何地方都没有小红叉标记,因为可以显示它们的项目设置 UI 不再可见

结果在Info.plist 中是隐藏的、视觉上不可编辑的、可能已过时/错误的键优先于为您创建的资产目录

去手动打开你的Info.plist并删除CFBundleIcons,重建,重新上传,瞧,图标又回来了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-29
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 2010-11-30
    • 2013-12-16
    • 1970-01-01
    相关资源
    最近更新 更多