11

我有一个包含三个方案的项目(Debug-MyApp、Beta-MyApp、MyApp)。该项目具有三种配置(Debug、Beta 和 AppStore)。此外,每个目标都会构建各自的配置。当我在 Interface Builder 中使用自定义类并使用“从目标继承模块”(默认值)时,它总是选择 Beta_MyApp 模块而不是我正在构建的任何目标(通常是 Debug-MyApp)。我在 xibs/storyboards 中验证了这一点,因为在 Xcode 中打开文件会导致 customModule 属性设置为 Beta-MyApp。

我还尝试将 Interface Builder Xib 默认模块和 Interface Builder Storyboard 默认模块的项目和目标设置都设置为 Debug_MyApp。

最终结果是我的自定义类都没有正确呈现;即使 Designables 说“最新”和“没有界面生成器错误发生”。

我当前的解决方法是将所有模块显式设置为 Debug_MyApp,而不是使用从目标继承模块,这会导致视图正确呈现。

有没有人经历过这个/知道如何补救?

4

2 回答 2

4

由于我做了几件事,因此不确定到底有什么帮助,但是在最后一次更改之后,我不再遇到从目标继承模块的问题。

  • 将非主要目标的显示名称更改为与主要目标不同的名称
  • 将 project.pbxproj 文件中非主要目标的相应 IBSC_MODULE(默认模块)属性从例如“MyApp”更新为“Debug-MyApp”

似乎在复制现有(主)目标时,Xcode 根本没有更新 IBSC_MODULE 属性,因此 Interface Builder 认为他使用主目标进行操作,而不是复制一个。从这个角度来看,运行时错误似乎是合理的。

于 2019-12-04T10:46:21.343 回答
3

从 11.2 开始,似乎有一个史诗般的、轰动一时的错误......

如果您碰巧更改了显示名称,是的,显示名称,在任何时候...

从那时起,项目在目标方面的整个逻辑似乎完全被破坏了。

“从目标继承模块”真的不再起作用了,你必须手动设置每个故事板上的每个“模块”字段,任何时候你改变任何东西。

再一次,它似乎确实是在 11.0 左右引入的一个非常大的错误。

唯一的解决方案就是解决方法 - 手动设置每个故事板。(当然,如果你错过了一个......崩溃。)

于 2019-11-22T12:57:15.107 回答