Storyboard Custom Class module

之初

项目使用 SwiftObjective-C 混合开发模式,后续的想通过多个 targetschema 来管理项目的版本,设定有两个 target, 分别是 project-nameproject-name-dev, 这两个 target 分别有不同的 schema 管理,并配置不同的 bundle-idbundle-icon,这样,就可以在一台设备上方便地区分发布和开发两个版本。
在之前,只有一个 target 的时候,打包没有问题,后来在新的 scheme project-name-dev 下,打包出来的项目有些页面是空白的。甚是费解。

迷茫

由于打包出来的项目,直接部署到设备上,具体报错,没法看到。同样的代码,同样的配置,为何就新的target有问题,一度怀疑这个多target的方法是不是可行。

曙光

同事提示说,这些跳转都是在Storyboard里实现的。是不是在Storyboard里的某些控制器设置的问题。
可是不知道具体报什么样的错误,也不知道在哪里改啊!

足下

不怕麻烦,修改工程的mobileprovision文件,在手机上运行调试。直觉告诉我,console里一定会有报错。

报错

**Unknown class xxxController in Interface Builder file.**

Google & Stack Overflow

Xcode 6 Strange Bug: Unknown class in Interface Builder file
XCODE 7.1 Swift 2 Unknown class in Interface Builder file

众矢之的

所有的问题都指向了Storyboard,而且都指向了ViewControllerCustom class>module.

水落石出

在那些没有出现的ViewController里面,Custom class module 被设置成了 'project-name' ,里面有两个选项 'project-name' 和 'project-name-dev'。选哪个都合适啊。果断删除,运行调试。完美解决。

Learn More

通过版本控制工具git,发现了改动之后的storyboard文件的变化


修改前和修改后的对比

之前也是设置了 module 为readme,但是少了一个字段 customModuleProvider。这个字段通过google发现有好多人也是出现丢失的情况,他们也提供了一些修复的方法。我的修复方法很简单,直接把这个之前的内容删除,然后回车,就好了。

这个问题,也在这里被提到过,同样是多Target导致的。

In a Word

Stay hungry, stay foolish.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • "Unterminated string literal.": "未终止的字符串文本。", "Identifier...
    两个心阅读 8,474评论 0 4
  • { "Unterminated string literal.": "未终止的字符串文本。", "Identifi...
    栗子雨阅读 7,991评论 0 3
  • { "Unterminated string literal.": "未终止的字符串文本。", "Identifi...
    一粒沙随风飘摇阅读 10,829评论 0 3
  • 煎熬了三天 实在是忍不住 洗头发了 结果是当天晚上 就停经了 不知道该怎的形容自己的心情……
    昊郡阅读 242评论 0 0