【发布时间】:2016-05-30 18:14:45
【问题描述】:
我在我的 Xcode 项目中创建了不同的目标,以便为不同的客户版本我的应用程序。 每个客户端使用不同的 xcassets,每个目标一个。这样我就可以拥有具有相同名称的不同图像。所以只需选择目标,就会显示正确的图像。
这适用于我的应用中的任何视图。每当我在不同的目标中运行应用程序时,所有图像都会自动更改。问题是当我的启动屏幕中有图像时。 我为我的启动屏幕创建了 .xib 文件(每个客户端一个)。
通过选择目标,正确的 .xib 运行,但它加载的图像始终与基础项目中的相同。
这就是我组织项目的方式,因此拥有不同的目标会自动选择不同的图像:
-
Base.xcassets:
- 目标成员资格 = 基础
- image-launch(基础项目启动屏幕)
- 基础项目的其他图片
-
Client1.xcassets:
- 目标成员 = Client1
- 图像启动(客户端 1 版本启动屏幕)
- 客户端 1 版本的其他图片
-
Client2.xcassets:
- 目标成员 = Client2
- 图像启动(客户端 2 版本启动屏幕)
- 客户端 2 版本的其他图像
当我选择一个目标时,所有具有该Target Membership的元素都应该被加载。只有我的 Launch Screen 从 Base.xcassets 加载图像启动。
【问题讨论】:
-
你确定你在每个 xcassets 上检查了正确的目标并且没有检查其他的?
-
是的。每个 xcasset 都只选择了正确的目标。
-
您已核对派生数据并进行了清理?
-
就这么做了。但它无论如何都没有用。而且,我从我的 Mac 中删除了应用程序中显示的图像。我试图强制加载客户端 2 图像。不知何故,baseapp 图像加载。我什至没有它在我的 mac 了。
-
我遇到了完全相同的问题,并通过重新启动iOS设备解决了它。似乎 iOS 缓存了 Launch Images/Screens,当开发人员在 XCode 中更改 Launch Screen 时,由于此缓存,这些更改并不总是出现在设备上。从这里得到这个解决方案:stackoverflow.com/a/33698093/4337911
标签: ios xcode image target launch-screen