Asset Catelog问题与多个目标

我有一个有多个目标的项目。 假设目标被命名为Target-A,Target-B等。 对于每个目标,我都有不同的应用程序图标资产目录。 他们被命名为AppIcon – A,AppIcon – B,并继续为所有的目标。 我已经将相应的资产目录分配给所有目标,但是当我在设备/模拟器上运行时,它只显示Target-A的图标。 对于所有其他目标,它不设置任何图标并显示iOS 7默认的占位符图标。 请帮忙!

在添加应用程序图标图像时,请注意添加应用程序图标-1到testing目标,然后select仅testing目标而不是testing复制目标相同。

在这里输入图像说明

同时在plist中添加“图标文件”行,并指定您的应用程序图标名称。

在这里输入图像说明

在这里输入图像说明

请检查下面的屏幕截图,你会得到一些想法。

在这里输入图像说明

在这里输入图像说明

如果您在项目中使用POD,则必须编辑“Pods-resources.sh”并删除“xcassets”命令(请参阅附图)。 在这里输入图像说明

最简单的方法是在同一个xcassets文件中添加多个“应用程序图标”。 有了这个技巧,我对Cocoapod没有任何问题:

  1. 打开你的xcassets文件
  2. 右键点击左栏
  3. 点击“新build应用程序图标”

然后,您可以轻松地为每个目标select正确的“应用程序图标”。

所以我写了一个脚本来删除Lukapple指出的所有行。删除目标依赖关系之后在xcode项目中运行Script的代码。

 echo "run script to remove Pods-resources.sh" file_name="${PROJECT_DIR}/Pods/Target Support Files/Pods/Pods-resources.sh" function remove_wrapper_extensions {cat "$1" | awk 'BEGIN { suppress_output = 0; } /^if \[\[ -n/ { suppress_output = 1; } (!suppress_output) { print $0; } /^fi$/ { suppress_output = 0; }' > "${1}.1"} function remove_case_statement {cat "$1" | awk 'BEGIN { suppress_output = 0; } /\s*\*\.xcassets\)$/ { suppress_output = 1; } (!suppress_output) { print $0; } /;;/ && (suppress_output) { suppress_output = 0; }' > "${1}.2"} remove_wrapper_extensions "$file_name" remove_case_statement "${file_name}.1" rm "${file_name}" rm "${file_name}.1" mv "${file_name}.1.2" "$file_name" chmod +x "${file_name}"