Xcode 无法正确处理 Main bundle 之外定义的命名颜色

lec*_*ain 7 xcode ios xcasset

主要目标是创建一个模块(框架),其中包含要用于同一公司的多个应用程序的基本 UI 组件,但是我在 Xcode 处理来自外部的资产(尤其是支持深色和浅色外观的命名颜色)方面存在一些问题模块在故事板或 XIB 文件中使用时。

Xcode 似乎没有正确处理在主包之外定义的命名颜色,正如这篇不错的博客文章中已经描述的那样。更多详情:

没事吧

  • 故事板编辑器正确显示所有定义的命名颜色,无论它们是在本地定义还是在工作区的另一个模块中定义。
  • Xcode 中的故事板预览工作正常,可以处理深色和浅色界面样式。

有什么不对的

  • 故事板结构正确包含命名颜色的资源,但不包含任何捆绑引用,所以我猜它假设颜色在主捆绑中都是可用的。
  • 将项目运行到模拟器中,本地命名的颜色在dark 和light 模式下都可以正常工作,但是找不到ResourceModule 框架中定义的颜色,因此iOS 只使用storyboard 资源中定义的fallback 颜色值。

我准备了一个存储库来更好地展示这个问题:https : //github.com/lechuckcaptain/TestResourcesIntoModule。README.MD 中提供了更多信息。