Xcode Xamarin.iOS项目中未识别外部捆绑包的资源
我使用的是一个iOS框架,它与一个外部资源包(该框架使用位于包内不同文件夹中的一些资源)一起提供。如果框架和bundle都集成在Xcode项目中,那么一切都可以正常工作(我通常将bundle放在Resources文件夹中) 在这里,您可以看到运行时的捆绑路径(在Xcode中):Xcode Xamarin.iOS项目中未识别外部捆绑包的资源,xcode,xamarin,mobile,xamarin.ios,resourcebundle,Xcode,Xamarin,Mobile,Xamarin.ios,Resourcebundle,我使用的是一个iOS框架,它与一个外部资源包(该框架使用位于包内不同文件夹中的一些资源)一起提供。如果框架和bundle都集成在Xcode项目中,那么一切都可以正常工作(我通常将bundle放在Resources文件夹中) 在这里,您可以看到运行时的捆绑路径(在Xcode中):@/var/containers/bundle/Application/44691B5C-73D0-4B28-B88F-14ECB52AFC5F/DemoProject.app/FRAMEWORK_bundle.bundl
@/var/containers/bundle/Application/44691B5C-73D0-4B28-B88F-14ECB52AFC5F/DemoProject.app/FRAMEWORK_bundle.bundle“
另一方面,我尝试在Xamarin iOS项目中集成相同的框架。
首先,我创建了一个iOS绑定项目,并添加了Objective-C框架作为本机参考。外部捆绑包已添加到iOS绑定项目的Resources文件夹下。ApiDefinition.cs和Structs.cs文件也已成功配置。我已经编译了这个项目,并且得到了.dll文件
我已将.dll文件集成到我的Xamarin iOS项目中,该项目位于References文件夹下。当我尝试运行项目时,它失败了,因为外部捆绑包中的资源不可见(框架被配置为在找不到外部资源时抛出异常)
我错过什么了吗?我是否应该在Xamarin iOS项目中添加外部捆绑包并将其与项目链接
谢谢大家! 确保文件标记为
BuildAction=BundleResource
。正如文件所说:
绑定项目中标记为BundleResource的文件将嵌入到绑定程序集中,并在被Xamarin.iOS应用程序项目引用时提取到正确的位置
根据:
您可以将这些文件添加到绑定项目或应用程序项目,这并不重要
将捆绑包文件添加到Xamarin iOS项目的资源文件夹是另一种选择。你可以试一试
其他一些参考资料:
谢谢你的回答,凯文。我已将外部捆绑包中的所有文件标记为iOS绑定项目中的BundleResource。问题是这些资源在我的Xamarin iOS项目(单视图应用程序)中不可见,即使我将它们添加到项目中(我尝试将它们标记为BundleResource/Content)。你能通过应用程序项目的代码而不是库来获取资源吗?