我想将几个不同的资源文件夹添加到一个项目中。
然后在项目目标中设置5个不同的应用程序。我为每个人创建了不同的info.plist。如何为每个应用指定不同的图标文件并启动图像文件?
我会有5个不同的文件夹包含图标图片,例如app1 / icon.png app2 / icon.png
我试图将路径添加到plist中,但似乎无法获取文件。
如果我尝试在“目标 - 摘要”选项卡中添加图标文件,它只会将它们复制到根文件夹中并覆盖之前的文件夹。
我可以通过在图片中添加前缀来快速修复,例如app1_icon.png,app2_icon.png
我确信有更好的方法可以做到这一点。
答案 0 :(得分:2)
因此,您有多个iOS应用程序在Xcode中共享一个公共代码库。
您可能正在创建类似应用程序的Lite / Pro,Free / Paid或独特皮肤版本。
您已经知道如何复制TARGETS,并且您希望能够找到如何为每个目标指定单独的.plist
文件。您还意识到如何使用“Build Settings”>中指定的编译器指令(即#define MACROS)。 “预处理器宏”可在各种目标应用程序中启用和禁用略有不同的行为。
现在您正在尝试为每个目标指定图标文件并遇到困难。如果您尝试使用不同的“默认*”启动映像或其他资源(其中您希望每个目标使用具有相同文件名集的不同图形资源文件),则会遇到相同的问题。
以下是您需要做的事情:
为每个目标创建一个目录,例如“App-A”和“App-B” 可以放置由图标组成的同名文件集 等等。
在项目层次结构中创建与各种目标目录名称相同的Xcode组。这不是必需的,但让我的生活更轻松,您将在步骤#9中看到。
将您的图标和其他图片添加到这些群组。是的,他们可以(并且应该)从Target到Target具有相同的名称。例如,您可以在App-A和App-B中使用“icon-57.png” 提示:在向每个组添加文件之前,请将Xcode设置为与该组关联的目标进行构建。例如,如果要将图像添加到App-B,在“运行”和“停止”按钮附近的Xcode界面的左上角,请在选项菜单中选择“App-B>我的iPhone” 。这会将您的图像成员资格与正确的目标相关联,并在后续步骤中为您提供帮助。此提示不是必需的。
现在是@rckoenes上面评论中提到的重要部分。您必须为添加的每个文件设置目标成员资格。单击每个Target,选择“Build Phases”,然后关闭“Copy Bundle Resources”。您必须添加适合该目标的图像,并删除其他目标或目标使用的图像。如果您在上一步中按照“提示”进行操作,则可能已经为您正确设置了此项。然而,在以下步骤中,此列表可能会损坏,您将不得不回到这里并再次调整。
您现在已经完成了在整个应用中使用的常规资源图片。您可能已将此方法用于项目中需要在每个Target中看起来不同的图像或按钮图形。现在应该如此。
图标和默认*背景图片是一个不同的故事,因为“目标摘要”面板允许您通过拖放来填充这些资源。接下来的步骤将为您提供帮助。
对于每个目标,在“摘要”屏幕中拖动图标并将图像文件启动到图像持有者。当然,它们必须是正确的尺寸。 Xcode会请求您的许可将这些文件复制到项目的根目录。允许它,您将在以后删除它们。在后续过程中,Xcode将请求权限覆盖根目录中已有的文件。再次,允许它。
在Xcode中,删除项目根目录中出现的所有新复制的图标和启动器图像文件。允许Xcode将它们移动到垃圾箱。
最后,所有创建,移动和复制文件的行为都可能对您的目标会员资格造成严重破坏。返回上面步骤4中的说明并清理所有会员资格。您可以轻松地从错误的目标中查找一个目标中包含的图像,因为路径显示在文件名后面。这只是我们应该小心创建具有匹配目标名称的目录和组的原因之一,如步骤#1和#2中所建议的那样。
现在,您的每个应用都会显示正确的应用程序图标和启动器背景图像。
如果您之前安装的应用没有应用程序图标或图标错误,则可能必须删除该应用并重新安装才能看到新图标。
以下图片有助于多个目标的可视化:
答案 1 :(得分:0)
通过包含每个目标的图像。
因此app1包含app1/icon.png
但不包含任何其他内容,app2包含app2/icon.png
。