我正在使用与外部资源包一起使用的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项目中添加外部包并将其与项目链接吗?
谢谢!
答案 0 :(得分:1)
确保文件标记为BuildAction = BundleResource
。正如文档Resources in Binding Projects所说:
绑定项目中标记为 BundleResource 的文件将嵌入到绑定程序集中,并在被Xamarin.iOS应用程序项目引用时提取到正确的位置。
根据How to write bindings for a framework?:
您可以将这些文件添加到绑定项目或应用项目中,但这并不重要。
将Bundle文件添加到Xamarin iOS项目的Resource文件夹是另一种选择。你可以尝试一下。
其他一些参考文献: