Xcode 10.3中资产目录返回空图像,在10.1中工作正常

3

使用两个不同版本的Xcode构建的应用程序会出现不同的行为。 使用Xcode 10.1构建时,所有图像都按预期由UIImage(named:in:compatibleWith:)方法加载。但是当我使用Xcode 10.3构建应用程序时,此方法对于所有未切片的图像都返回nil。奇怪的是,它对于切片图像返回非nil

值得注意的是,当我从Xcode(10.1/10.2.1/10.3)运行应用程序时,图像正常工作,但是当使用xcodebuild test-without-building命令行进行测试时,它们总是nil


我们有完全相同的问题,非常感谢任何帮助。 - alex
你能把相关的图片发送给我以供查看吗? - rptwsthi
1个回答

1
问题出在xcodebuild -destination标志内容上。由于这是在CI上发生的,因此不明显的是为两个独立构建传递了不同的值(Xcode 10.1和10.2.1)。
使用Xcode 10.1构建时,使用iOS模拟器10.3.1。因此,xcode构建系统推断出actool --filter-for-os-device-version 10.3.1参数。生成的car文件与iOS 10+运行时兼容。
使用Xcode 10.2.1构建时,使用iOS模拟器12.2。在这种情况下,构建系统推断出actool --filter-for-os-device-version 12.2参数。生成的car文件与iOS 12+运行时兼容。
在两种情况下,都使用xcodebuild test-without-building与iOS模拟器11.3环境一起使用。因此,使用Xcode 10.2.1构建的应用程序仅适用于iOS 12.2环境,导致iOS 11.3环境中所有图像消失。
解决方法是在命令调用中同步build-for-testingtest-without-buildingxcodebuild -destination标志的值。
另一个有用的建议是将构建设置ENABLE_ONLY_ACTIVE_RESOURCES切换为NO

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