iphone:使用具有不同构建目标的不同图标?

时间:2011-06-09 07:40:51

标签: iphone ipad build target

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

7 个答案:

答案 0 :(得分:19)

Xcode 6 - Xcode 9

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

答案 1 :(得分:6)

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

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

答案 2 :(得分:4)

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

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

答案 3 :(得分:2)

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

答案 4 :(得分:1)

嗯......每次我尝试使用外部引用的图标将其拖到摘要窗格上时,也会复制到我原始项目的根目录 - 这两个图标试图同时存在地点。

我已经禁用了复选标记以便在必要时复制文件,但无论如何它都是这样做的(Xcode 4)让我认为这些文件需要在root中工作。

我是否遗漏了某些内容,我是否应该为两个版本命名不同的文件,例如?

答案 5 :(得分:0)

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

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

for iPhone:

  • 的icon.png
  • Icon@2x.png

for iPad:

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

答案 6 :(得分:0)

详细

Xcode 9.3.1

解决方案

步骤1.准备资源文件夹

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

我的应用根文件夹,包含资源文件夹

enter image description here

  • icon_Base_Production.png icon_Base_Staging.png icon_CI.png - 不同目标的图标
  • icon.png - generateIcons 脚本的当前图标。它由 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.将运行脚本添加到项目

enter image description here

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/

所有构建方案

enter image description here

结果

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

enter image description here enter image description here