2013-10-21 44 views
11

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

回答

6

当您添加应用程序图标图像时,请在添加应用程序图标-1到测试目标时注意,然后选择仅测试目标而不测试测试目标相同的目标。

enter image description here

而且在这两个plist中添加一行“图标文件”,并指定您的应用程序图标的名称。

enter image description here

enter image description here

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

enter image description here

enter image description here

+0

我也是这么做的。 –

+0

有同样的问题。我忘了将资产目录添加到我的第二个目标,如第一个屏幕截图所示。非常感谢! –

16

如果你在你的项目中使用吊舱,那么你必须编辑 “Pods-resources.sh”,并删除 “xcassets” 命令(见附图)。 enter image description here

+0

绝对正确,这是cocoapods中的错误(Github上的问题#1546 https://github.com/CocoaPods/CocoaPods/issues/1546)我使用了一个构建脚本来删除这些行(可以在这个链接中找到它) – orschaef

4

对我来说最简单的方法是在同一xcassets文件中添加多个“应用程序图标”。利用这种技术,我曾与Cocoapod没有问题:

  1. 打开xcassets文件
  2. 左侧栏右击
  3. 单击“新建应用程序图标”

然后你就可以轻松选择每个目标的正确“App图标”。

2

所以我写了一个脚本来删除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}"