1

我的应用程序针对 iphone,但显然它也可以安装在 iPad 上。

在 iPhone 上,它使用正确的图标图像;在 iPad 2 上,它也使用正确的图标。

但是在 iPad 3 上,它不是使用图标作为图标,而是使用我的启动图像作为图标。这是 iPad 3 上的常见行为吗?还是我的设置错误?(我使用最新的 SDK,并针对 iOS 5.0,如果这很重要)

更新

我附上了下面的 plist 文件。我想我能理解出了什么问题…… Default@2x.png 是启动图像的名称。令我困惑的是,这与我在 Xcode 中“摘要”屏幕上看到的不匹配。在摘要屏幕上的 Xcode 中:

  1. 我将视网膜图标设置为 SOF_app_icon.png,但我没有设置非视网膜图标 - 它显示“未指定图像”;
  2. 我有两个启动图像集:用于非视网膜的 Default.png 和用于视网膜的 Default@2x.png。

这是 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>English</string>
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIcons</key>
<dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
        <key>CFBundleIconFiles</key>
        <array>
            <string>SOF_app_icon.png</string>
            <string>Default@2x.png</string>
        </array>
    </dict>
</dict>
<key>CFBundleIdentifier</key>
<string>com.overwaitea.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>LSApplicationCategoryType</key>
<string></string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSMainNibFile</key>
<string>MainWindow</string>
<key>NSZombieEnabled</key>
<false/>
<key>UIBackgroundModes</key>
<array>
    <string>location</string>
</array>
<key>UIFileSharingEnabled</key>
<true/>
<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>location-services</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>corelocation</key>
<string>YES</string>
</dict>
</plist>
4

5 回答 5

4

它使用启动图像(即在您的应用程序启动后仍在加载时显示的图像)?这没有任何意义。这当然不是正常行为,我猜你在Info.plist图标条目中犯了一个错误。

请注意,您需要为 iPad 3 提供 2x 图标...请参阅Apple 提供的信息聚宝盆。

如果您发布 Info.plist 的副本(任何敏感信息都已编辑)以及您的图标文件名,我们可能可以准确确定出了什么问题。

最后一点,我注意到应用程序的开发副本相对于图标等资产可能会略微失控,这似乎是因为 Xcode 试图通过仅复制它认为已更改的资产来减少启动时间。出于这个原因,实际上从设备/模拟器中删除应用程序并从头开始重新安装可能是一个好主意,以确保您没有看到过时的信息。

编辑:感谢您发布 Info.plist。这澄清了一些事情。

让我们从这一行开始:

<string>Default@2x.png</string>

您是否看到,在您的图标文件设置中,这告诉 iOS 使用您的启动图像作为图标?我猜这是一个错字,但我想确保您不会混淆不同 plist 键的用途。

于 2012-04-04T21:13:25.523 回答
1

有同样的问题所有添加到iphone项目的图标文件(包括icon-72.png、icon-72@2x.png、Icon-Small-50.png、Icon-Small-50@2x.png)。

然后将 iPad 文件手动添加到 info.plist 文件中。它表明顺序很重要。把它们放在最后没有用。我的订单现在是 Icon.png Icon@2x.png Icon-72.png Icon-72@2x.png 这对我有用。

于 2012-05-09T11:16:46.473 回答
1

作为记录,Xcode 4.3.1 使用 CFBundleIconFiles 3 和 4 作为针对 iPhone 的应用程序的启动图像。我在摘要窗口中清除了启动图像并删除了 info.plist 中的项目以确保我不是导致问题的人,并且 Xcode 在重新添加时总是将启动图像设置为相同的插槽。

于 2012-05-31T18:29:43.210 回答
0

改变

 <string>SOF_app_icon.png</string>
    <string>Default@2x.png</string>

  <string>SOF_app_icon.png</string>
    <string>SOF_app_icon@2x.png</string>

您如何配置它是告诉设备将视网膜图标设置为“默认”图像的视网膜版本。

澄清“Default.png 和 Default@2x.png”是您的启动(启动)图像的标准名称。

于 2012-04-04T22:12:39.647 回答
0

解决方法很简单,在你的plist->icon files-> Default.png并且Default@2x.png可以添加!只需将其从 pList 中删除,

有用

于 2013-01-18T07:36:24.173 回答