【问题标题】:iphone: Use different icons with different build targets?iphone:使用具有不同构建目标的不同图标?
【发布时间】:2011-06-09 07:40:50
【问题描述】:

现在我有一个常规的 iphone 应用程序,带有独特的跳板图标和启动画面。现在我想创建一个基本相同的应用程序,只需稍作改动——这个应用程序将有不同的名称、不同的跳板图标和不同的启动画面。所以基本上我现在所做的是复制原始构建目标 - 但是我如何向我的项目添加另一个 icon.png 并告诉 XCode 为每个构建使用相关图标?那么闪屏呢?

【问题讨论】:

    标签: iphone ipad build target


    【解决方案1】:

    Xcode 6 – Xcode 9

    1. 转到 images.xcassets 并单击加号按钮以创建新的应用程序图标。您应该为每个构建设置一个应用图标。
    2. 转到项目 -> 构建设置并搜索“资产目录应用程序图标集名称”。在您的每个目标中,更改应用图标集名称的名称以匹配您在第 1 步中输入的名称。

    【讨论】:

    • Xcode 10: 在您的资产目录中,单击“+”->“应用图标和启动图像”->“新 iOS 应用图标”
    【解决方案2】:

    每个目标都有不同的 info.plist 文件

    在此文件中,您可以指定图标、启动画面、显示名称...

    【讨论】:

      【解决方案3】:

      没有必要将您的图标文件拖到目标摘要上的帮助区域。 只需正确命名文件(Icon.png、Icon@2x.png 等)并将它们作为资源添加到项目中,并确保仅将它们添加到需要它们的目标包中,它们将自动使用.

      您可以创建两组图标文件,并在将它们拖入您的项目时取消选中它们未使用的目标框。

      【讨论】:

        【解决方案4】:

        好的,我找到了答案,而且很简单。正如我已经提到的,我复制了我拥有的目标 - 并更改了产品名称。然后是应用程序图标和启动屏幕的棘手部分。我基本上所做的就是从项目文件夹中删除这些文件并将它们移动到外部文件夹。然后我会为新目标的图像创建另一个外部文件夹。然后我会为每个构建添加图像的引用(非常重要的是不要复制它们!)到项目中。

        【讨论】:

          【解决方案5】:

          嗯...每次我尝试通过将外部引用的图标拖到摘要窗格中来使用它时,也会在我的原始项目的根目录中制作一个副本 - 这两个图标试图住在同一个地方。

          如有必要,我已禁用复选标记以复制文件,但无论如何它都会这样做(Xcode 4)让我认为这些文件需要在根目录中才能工作。

          我是否遗漏了什么,例如,我是否应该为两个版本命名我的文件?

          【讨论】:

            【解决方案6】:

            详情

            Xcode 9.3.1

            解决方案

            第一步,准备资源文件夹

            在此文件夹中,我们将为应用程序准备图像

            我的应用根文件夹与 Resources 文件夹

            • icon_Base_Production.pngicon_Base_Staging.pngicon_CI.png - 不同目标的图标
            • icon.png - generateIcons 脚本的当前图标。它由 generateIcons 脚本自动创建。
            • generateIcons - 从一个图像为应用程序创建一组图标的脚本

            生成图标代码

            nvm install 6
            nvm use 6
            #https://github.com/dwmkerr/app-icon
            npm install -g app-icon
            app-icon generate --icon "${0%/*}"/icon.png --platforms=ios
            

            步骤 2. 将运行脚本添加到您的项目中

            INFOPLIST_MYAPP="${SRCROOT}/SM2/Application/InfoPlist/Info.plist"
            ICON_NAME=""
            
            case "${CONFIGURATION}" in
            
                "Debug_Staging" | "AdHoc_Staging" | "Test_Staging" | "Profile_Staging" )
                      ICON_NAME="icon_Base_Staging.png";;
            
                "Debug_Production" | "AdHoc_Production" | "Distribution" | "Test_Production" |    "Profile_Production" )
                     ICON_NAME="icon_Base_Production.png";;
            
                "AdHoc_Production_SM2_CI" )
                     ICON_NAME="icon_CI.png";;
            
                *)
                ;;
            esac
            
            cp -r "${SRCROOT}/Resources/${ICON_NAME}" "${SRCROOT}/Resources/icon.png"
            ${SRCROOT}/Resources/generateIcons
            cp -rf ${SRCROOT}/Resources/AppIcon.appiconset/ ${SRCROOT}/SM2/Resources/Images.xcassets/AppIcon.appiconset/
            

            所有构建方案

            结果

            每次切换构建方案时,都会创建必要的图标。

            【讨论】:

              【解决方案7】:

              仅将图标文件添加到相关目标,然后将它们添加到“图标文件”下的info.plist文件中(必须执行两次,iOS5还有一个)。

              如果您遵循文件命名约定,通常它会为您完成:

              对于 iPhone:

              • 图标.png
              • 图标@2x.png

              iPad:

              • 图标 72.png
              • Icon-72@2x.png

              【讨论】:

              • 我知道,如果您保持命名约定并仅将相关文件添加到每个目标(当然在不同的文件夹中),每个目标(FULL 和 LITE)都会有不同的图标。跨度>
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-05-28
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-06-01
              • 1970-01-01
              • 2015-07-21
              相关资源
              最近更新 更多