繁体   English   中英

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

[英]iphone: Use different icons with different build targets?

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

Xcode 6 – Xcode 9

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

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

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

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

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

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

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

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

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

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

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

对于 iPhone:

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

对于 iPad:

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

细节

Xcode 9.3.1

解决方案

STEP 1. 准备资源文件夹

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

我的应用程序根文件夹和资源文件夹

在此处输入图像描述

  • icon_Base_Production.png , icon_Base_Staging.png , icon_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

STEP 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/

所有构建方案

在此处输入图像描述

结果

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

在此处输入图像描述 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM