不同目标的Xcode启动图像

5
我在我的Xcode项目中创建了不同的目标,为不同的客户版本化我的应用程序。每个客户都使用不同的xcassets,每个目标一个。这样我就可以有相同名称的不同图像。只要选择目标,就会显示正确的图像。 这适用于我应用程序中的任何视图。每当我在不同的目标中运行应用程序时,所有图像都会自动更改。但是当我在启动屏幕中有一张图片时就会出现问题。我为我的启动屏幕创建了.xib文件(每个客户一个)。通过选择目标,正确的.xib运行,但它加载的图像始终是来自基础项目的相同图像。
以下是我如何组织项目,使得不同的目标可以自动选择不同的图像: - Base.xcassets: - 目标成员身份=基本 - image-launch (基本项目启动屏幕) - 其他基于项目的图像
- Client1.xcassets: - 目标成员资格=客户端1 - image-launch (客户端1版本启动屏幕) - 客户端1版本的其他图像
- Client2.xcassets: - 目标成员身份=客户2 - image-launch (客户2版本启动屏幕) - 客户2版本的其他图像
当我选择目标时,那些目标成员所拥有的元素应该被加载。只有我的启动屏幕从Base.xcassets加载image-launch。

是的。每个xcasset都只选择了正确的目标。 - CFlux
1
你已经清除了派生数据并进行了清理吗? - sschale
刚刚试了一下,但是还是不行。而且,我已经从我的 Mac 上删除了在应用程序中显示的那张图片。我试图强制加载客户端 2 的图片,但是基础应用程序的图片却加载了。我甚至已经在我的 Mac 上将其删除了。 - CFlux
另一个更新:我之前一直在iPhone上进行所有的测试。然后我在模拟器上进行了测试,结果正常运行。现在我担心当我上传应用程序到AppStore时可能会发生这种情况。 - CFlux
10
我之前遇到和你完全一样的问题,通过重新启动iOS设备解决了。看起来iOS会缓存启动图片/屏幕,当开发者在Xcode中更改启动画面时,由于这个缓存,这些变化不总是出现在设备上。我从这里得到了解决方案:https://dev59.com/hlwY5IYBdhLWcg3weXvV#33698093 - Kii
显示剩余2条评论
2个回答

2

我曾经遇到了同样的问题,并最终解决了它:(现在我使用的是Xcode 11.3)

  • 从项目导航器中选择您的目标,并选择目标的“All”或“Customized”设置
  • 进入Build Settings->Asset Catalog Compiler
  • 更改Asset Catalog Launch Image Set Name的值

或者

  • 从项目导航器中选择您的目标
  • 搜索“Launch Image”,并在“Asset Catalog Compiler”部分更改LaunchImage名称。

进入图片描述

如果新的启动屏幕没有显示,请尝试删除您的应用程序并重新安装。

此外,请确保您的目标的常规设置中的Launch Screen File选项为空白。


0

对于我来说,Mohit Kumar的解决方案不起作用,可能是XCode Bug(12.0.1)。 对我有效的方法是为每个目标创建不同的LaunchScreen文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接