Xamarin Studio 在 macOS 的共享项目中看不到 XIB
Xamarin Studio can't see XIBs in shared project for macOS
我正在为我的应用使用 here 描述的方法。
目前,我能够为 Android 和 iOS 平台设置这样的结构。一般来说,我有全局核心(.NET lib)、平台特定核心(平台特定 Class 库)和一些扩展(平台特定 Class 库)。
当我尝试以相同的方式为 macOS 平台配置结构时出现问题。我能够创建特定于平台的 class 库,其中包含应在应用程序中重复使用的组件(目前只有 1 class 带有 xib 文件)。但是,当我想在 macOS 目标中使用这个包时,我遇到了特定于 macOS 平台的运行时错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[NSNib _initWithNibNamed:bundle:options: ] could not load the nibName: MainView in bundle (null).'
这很奇怪,因为我为 iOS 应用程序设置了相同的结构,并且在 iOS 目标中,它工作得很好:所有源文件、xib 文件、资源都是可见的并且可以从包装中免费使用。
笔记:
我发现了一些如上所述的问题和一些可以解决这个阻塞点的解决方案:
- 重命名 xib 文件 - 不起作用
- 将 xib 文件放入 rootDir - 不起作用
- 确保文件的 BuildAction 是 "InterfaceDefinition" - 不起作用(它总是设置为 InterfaceDefinition)
- 重新创建文件 - 不起作用
- 全部清除、删除文件、重新启动、新建 - 不起作用
- 将文件放入资源目录 - 不起作用
- 强制包含到包中 - 不起作用
- 检查 VB 中的 class 是否正确 - 无效(始终正确)
- 检查 Xcode 包含自动生成文件的文件夹 - 不起作用(通常所有文件总是存在,有几次自动生成的 h 和 m 文件丢失了 -> 我收到另一个错误,但是当手动创建它们时-> 我再次遇到这样的错误)
- 手动指定资源包 - 不起作用(这很奇怪,因为对于 iOS 库,所有资源都在空(主)包中可用) - 我尝试明确指定包 - 不工作。
那么,如何在一些源文件、xib 和其他资源中准备 class 库,以便可以从使用此包的任何项目中自由访问?或者上面描述的某些步骤不正确?
根据 Xamarin Forum 的 Chris Hamonds 的说法,答案如下:
I believe this is a bug we've fixed but is not in the latest builds in our channel. I can reproduce with our Alpha build but installing a build from: https://jenkins.mono-project.com/view/Xamarin.MaciOS/job/xamarin-macios-builds-master/
我正在为我的应用使用 here 描述的方法。
目前,我能够为 Android 和 iOS 平台设置这样的结构。一般来说,我有全局核心(.NET lib)、平台特定核心(平台特定 Class 库)和一些扩展(平台特定 Class 库)。 当我尝试以相同的方式为 macOS 平台配置结构时出现问题。我能够创建特定于平台的 class 库,其中包含应在应用程序中重复使用的组件(目前只有 1 class 带有 xib 文件)。但是,当我想在 macOS 目标中使用这个包时,我遇到了特定于 macOS 平台的运行时错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[NSNib _initWithNibNamed:bundle:options: ] could not load the nibName: MainView in bundle (null).'
这很奇怪,因为我为 iOS 应用程序设置了相同的结构,并且在 iOS 目标中,它工作得很好:所有源文件、xib 文件、资源都是可见的并且可以从包装中免费使用。 笔记: 我发现了一些如上所述的问题和一些可以解决这个阻塞点的解决方案:
- 重命名 xib 文件 - 不起作用
- 将 xib 文件放入 rootDir - 不起作用
- 确保文件的 BuildAction 是 "InterfaceDefinition" - 不起作用(它总是设置为 InterfaceDefinition)
- 重新创建文件 - 不起作用
- 全部清除、删除文件、重新启动、新建 - 不起作用
- 将文件放入资源目录 - 不起作用
- 强制包含到包中 - 不起作用
- 检查 VB 中的 class 是否正确 - 无效(始终正确)
- 检查 Xcode 包含自动生成文件的文件夹 - 不起作用(通常所有文件总是存在,有几次自动生成的 h 和 m 文件丢失了 -> 我收到另一个错误,但是当手动创建它们时-> 我再次遇到这样的错误)
- 手动指定资源包 - 不起作用(这很奇怪,因为对于 iOS 库,所有资源都在空(主)包中可用) - 我尝试明确指定包 - 不工作。
那么,如何在一些源文件、xib 和其他资源中准备 class 库,以便可以从使用此包的任何项目中自由访问?或者上面描述的某些步骤不正确?
根据 Xamarin Forum 的 Chris Hamonds 的说法,答案如下:
I believe this is a bug we've fixed but is not in the latest builds in our channel. I can reproduce with our Alpha build but installing a build from: https://jenkins.mono-project.com/view/Xamarin.MaciOS/job/xamarin-macios-builds-master/