我在SPM包中创建了一个资产文件夹,并放置了我的应用程序所需的所有UIColors。我为每种颜色设置了"任意"one_answers"深色"外观。但当我在我的应用程序中使用这些颜色(在Storyboard中设置(时;"轻";模式颜色。没有这种支持,SPM中的颜色资源有什么意义?
资产(图像或颜色(不能很好地与SPM配合使用。
问题如下-xib或序列图像板存储在捆绑包(Bundle
(中,当加载xib/序列图像板时,它还会从同一捆绑包加载资源。
可以在另一个模块中引用一个类(例如UIView
子类(,但无法从不同的捆绑包加载资源。
这在图像中是显而易见的——接口生成器正确地显示图像,但在运行时没有加载。对于颜色,这有点棘手——界面生成器正确地显示了它们,乍一看,它们似乎在运行时加载正确。然而,事实并非如此。xib/storyboard只包含一个用作回退的RGB值。两个灯&暗模式则使用该回退值。
顺便说一句,这不是SPM特有的,xcframework也会发生同样的情况。
我能看到的唯一解决方法是在使用它们的每个包中都有相同的颜色资产,或者切换到SwiftUI。
这种情况不太可能改变,因为接口生成器总是为Objective-C运行时创建的,而Swift特定的包管理器不能很好地使用它
对于旧的Xcode目标,我们可以将相同的资产文件添加到多个目标中,这是可行的,但这似乎不可能与SPM有关