Xamarin.iOS项目

时间:2017-10-28 15:08:58

标签: xcode xamarin mobile xamarin.ios resourcebundle

我正在使用与外部资源包一起使用的iOS框架(该框架使用位于包内不同文件夹中的一些资源)。如果框架和软件包都集成在 Xcode 项目中(我通常将软件包放在资源文件夹中),一切正常。

在这里,您可以在运行时(在Xcode中)看到捆绑路径:@"/var/containers/Bundle/Application/44691B5C-73D0-4B28-B88F-14ECB52AFC5F/DemoProject.app/FRAMEWORK_BUNDLE.bundle"

另一方面,我尝试在Xamarin iOS项目中集成相同的框架。 首先,我创建了一个iOS绑定项目,并将Objective-C框架添加为 Native Reference 。外部包已添加到资源文件夹下的iOS绑定项目中。 ApiDefinition.cs Structs.cs 文件也已成功配置。我编译了项目,并且我有 .dll 文件。

我已将.dll文件集成到引用文件夹下的Xamarin iOS项目中。当我尝试运行项目时,它会失败,因为外部包中的资源不可见(框架配置为在找不到外部资源时抛出异常)。

我错过了什么吗?我应该在Xamarin iOS项目中添加外部包并将其与项目链接吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

确保文件标记为BuildAction = BundleResource。正如文档Resources in Binding Projects所说:

  

绑定项目中标记为 BundleResource 的文件将嵌入到绑定程序集中,并在被Xamarin.iOS应用程序项目引用时提取到正确的位置。

根据How to write bindings for a framework?

  

您可以将这些文件添加到绑定项目或应用项目中,但这并不重要。

将Bundle文件添加到Xamarin iOS项目的Resource文件夹是另一种选择。你可以尝试一下。

其他一些参考文献:

How to add a external Resource Bundle into the app

Embedding ObjectivC BindingLibrary with Bundle Resources