【发布时间】:2017-06-26 13:45:16
【问题描述】:
我们开始使用Xamarin studio 为少数应用程序准备具有通用解决方案的项目(这个想法是让我们所有的应用程序都使用相同的“核心”组件)。
我们从准备具有基本功能的通用“Core”开始。我们还添加了“subCore”——具有特定于每个平台(iOS、android、Windows 等)功能的库。
目前为Android 和iOS 设置这样的结构。
在macOS 的第二步实施过程中,我们遇到了一些阻塞点。
当我们尝试为macOS 平台配置(以上述方式)结构时出现问题。
我能够创建 macOS class Library 包含应在应用程序中重用的组件(目前这只是 1 个带有 xib 文件的类)。但是,当我想在macOS 目标中使用这个包(内部有xib)时,出现异常:
外部修改警告:调试器附加到进程。
应用特定信息: *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[NSNib _initWithNibNamed:bundle:options:] 无法加载 nibName: MainViewController in bundle (null)。以未捕获的方式终止 调用 NSException abort() 类型的异常
经过一番调查,发现Mac Build server is not converting xibs into nibs,所以Xamarin创建的包中缺少这个nib文件。
其他测试信息,基于Xamarin 论坛中提出的解决方案:
- 重命名、重新创建、重新定位项目中的 xib 文件 - 无法解决问题
- 重新创建项目 - 无法解决问题
-
检查
Build action属性设置为InterfaceDefinition(同时检查所有其他可能的变体) - 不能解决问题
我找到了 this post,其根本原因与我完全一样:
Mac Build 服务器未将 xib 转换为 nib。
根据这篇文章的讨论,问题应该得到解决,但我仍然面临这个问题。
有人可以建议如何解决所描述的问题吗?
【问题讨论】:
标签: c# xamarin macos-sierra nib