Storyboard 不包含仅在 TestFlight 上具有标识符的视图控制器

Posted

技术标签:

【中文标题】Storyboard 不包含仅在 TestFlight 上具有标识符的视图控制器【英文标题】:Storyboard doesn't contain a view controller with identifier only on TestFlight 【发布时间】:2018-04-18 20:03:25 【问题描述】:

我为 ios 应用程序使用 XLPagerTabStrip 库。 我重写了这个库中的函数来创建控制器:

override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] 

    var controllers:[UIViewController] = []

    let storyboard = UIStoryboard(name: "MediaStoryboard", bundle: nil)
    let controller = storyboard.instantiateViewController(withIdentifier: "VideosListController") as! VideosListController
    controllers.append(controller)

    let controllerNews = storyboard.instantiateViewController(withIdentifier: "NewsListController") as! NewsListController
    controllers.append(controllerNews)

    return controllers

我的 MediaStoryboard.storyboard (NewsController):

当我通过 Xcode 运行它时,一切都很好。但是当我将它上传到 iTunes Connect 并通过 TestFlight 运行它时,我在日志中收到了这个错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Storyboard (<UIStoryboard: 0x1c447f4c0>) doesn't contain a view controller with identifier 'NewsListController'' 
*** First throw call stack:
(0x181b82d8c 0x180d3c5ec 0x18c0d1ea8 0x1004da07c 0x101561dfc 
0x1015626fc 0x101562a48 0x101552064 0x101553238 0x1004d9b40 0x1004d9e6c 
0x18b75eee0 0x18b75eacc 0x18ba9c3b4 0x18b80bac8 0x18b80b720 0x18b7ff424 
0x18b757770 0x185cf925c 0x185cfd3ec 0x185c69aa0 0x185c915d0 0x18bb3054c 
0x18c10d4c0 0x18c106258 0x181b2b404 0x181b2ac2c 0x181b2879c 0x181a48da8 
0x183a2b020 0x18ba2978c 0x10044ce64 0x1814d9fc0)

为什么,你?

【问题讨论】:

确保您的故事板文件包含在 .app 文件中。 我该怎么做?此类“NewsListController”不在主情节提要中,我注意到如果我连接的控制器类不是来自主情节提要,则会发生此错误。 检查目标的构建阶段选项卡中的“复制捆绑资源”,并确保故事板列在那里。如果没有,请添加它。 故事板已经在那里了。我不明白为什么我在通过 Xcode 编译和运行时没有得到任何错误,但是在通过 TestFlight 运行时却得到了这个错误。 不确定,您可以尝试清理(shift-command-k)并再次尝试构建/上传。 【参考方案1】:

您现在可能已经找到了答案,我怀疑有多种方法可以到达那里。但对于其他来这里解决这个令人沮丧的问题的读者来说,这对我有用:

    打开故事板并单击有问题的场景。如果您检查身份检查器,您可能会看到如下内容:

    在模块字段内单击并明确选择模块,即使它似乎已被正确选择。它现在看起来像这样:

    清理、构建和运行。

【讨论】:

以上是关于Storyboard 不包含仅在 TestFlight 上具有标识符的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

迁移到资产目录后,Storyboard 不显示资产

绑定到 UserControl 中声明的 Storyboard 的属性

iOS/Swift/Storyboard:仅使用屏幕的 *part* 添加 PageViewController?

将 iOS Storyboard 项目包含到另一个项目中?

Swift - 添加一个不与当前 Storyboard 的视图重叠的 UIView

如何在handsontable上过滤时仅在下拉菜单上显示不包含HTML内容的文本?