ipad 3上的iphone应用程序的图标

时间:2012-04-04 20:58:34

标签: iphone objective-c

我的应用程序针对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。
  3. 这是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>
    

5 个答案:

答案 0 :(得分:4)

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

请注意,您需要为iPad 3提供2x图标...请参阅Apple提供的cornucopia of information

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

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

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

让我们从这一行开始:

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

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

答案 1 :(得分: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 这对我有用。

答案 2 :(得分:1)

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

答案 3 :(得分: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”是启动(启动)图像的标准名称。

答案 4 :(得分:0)

解决方案很简单, 在您的plist->icon files-> Default.pngDefault@2x.png中可能会添加!只需从pList中删除它,

工作