ios - Interface Builder Inherit Module 从 Target 选择错误的目标
问题描述
我有一个包含三个方案的项目(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,而不是使用从目标继承模块,这会导致视图正确呈现。
有没有人经历过这个/知道如何补救?
解决方案
由于我做了几件事,因此不确定到底有什么帮助,但是在最后一次更改之后,我不再遇到从目标继承模块的问题。
- 将非主要目标的显示名称更改为与主要目标不同的名称
- 将 project.pbxproj 文件中非主要目标的相应 IBSC_MODULE(默认模块)属性从例如“MyApp”更新为“Debug-MyApp”
似乎在复制现有(主)目标时,Xcode 根本没有更新 IBSC_MODULE 属性,因此 Interface Builder 认为他使用主目标进行操作,而不是复制一个。从这个角度来看,运行时错误似乎是合理的。
推荐阅读
- android - Firebase中的Facebook身份验证无法在Android上运行
- java - 以下代码中 new 运算符的用途是什么?
- javascript - 从多个文档中获取一个数组字段并将元素合并到一个对象中
- c# - 重新加载场景导致更新功能停止工作
- python - Tkinter“入口小部件”不接受任何输入
- polarion - 如果我的项目中没有测试运行页面,如何在 Polarion 中创建测试运行?
- ios - UILabel 显示表情符号
- android - CardView 在运行时崩溃了我的 AS 应用程序,我怎样才能正确使用 CardView?
- python - Python查找重复:找出是否有重复的数字并且索引diff最多为k
- azure - BlobAttribute 与 BlobTriggerAttribute 有什么区别?