JSQMessagesViewController 崩溃 'NSInternalInconsistencyException'

JSQMessagesViewController crashes with 'NSInternalInconsistencyException'

我正在使用通过 Cocoapods 安装的 JSQMessages。

我开始遇到此崩溃:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/XXX/Library/Developer/CoreSimulator/Devices/E4479289-9068-420E-8D2E-C147129BD60E/data/Containers/Bundle/Application/81C1166D-426F-4C68-B3FB-89164E2C35DC/XXXXXXXXXX.app> (loaded)' with name 'JSQMessagesViewController''

*** First throw call stack:
(
    0   CoreFoundation                      0x000000011304434b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x0000000112aa521e objc_exception_throw + 48
    2   CoreFoundation                      0x00000001130ad265 +[NSException raise:format:] + 197
    3   UIKit                               0x000000011143901a -[UINib instantiateWithOwner:options:] + 507
    4   XXXXXXXXXXXX                        0x000000010e2fb3bf -[JSQMessagesViewController viewDidLoad] + 143

此方法崩溃:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [[[self class] nib] instantiateWithOwner:self options:nil];

    [self jsq_configureMessagesViewController];
    [self jsq_registerForNotifications:YES];
}

我已经搜索并尝试了 Whosebug 和其他网站中提出的许多解决方案中的每一个解决方案,我花了两天时间都没有成功。

请帮我指出正确的方向。 谢谢!!

我终于解决了这个问题:

  1. 在 pod 目标的构建阶段中添加一个新的 "Copy Bundle resources" 阶段。
    Pod target -> Editor -> Add Build Phase -> Add Copy Bundle Build 相位

  2. 手动将 JSQMessages 使用的所有 XIB 文件添加到创建的阶段,使用 + 按钮。

  3. 删除派生文件夹中的所有内容

  4. 重新启动我的 Mac。是的,真的,这里没有神奇的想法。 XCode充满了你们人类无法破解的谜团。