如何在 Xamarin 中调用 IOS 库?
How do I call an IOS library in Xamarin?
我有 NeoSpeech 库(文本到语音)IOS 有 .a 、 .h 和数据库文件。该库在 ios 中运行良好。现在我必须在 Xamarin 项目中使用这个库。我正在尝试使用静态库进行消费,但无法在其他库中调用库,因此我无法在静态库中使用 neospeech 库。 xamarin 中还有另一个选项,即与 xamarin 链接的本机 C,但没有适当的文档。在我的 scanrio 中使用链接本机库也很好。请帮助我。
谢谢
尝试使用 Objective Sharpie 它需要 头文件 (不是 .a 文件)并生成 C# api 定义文件:ApiDefinition.cs 和StructAndEnums.cs。有时取决于你的 h 文件,它只生成 StructAndEnums。可能没问题,但如果不是 sharpie 应该报告一些错误,您可以通过 SO 搜索。
然后您可以创建 Binding 项目并参考其中的 .a 文件并生成 ApiDefinitions。如果你有单独的.a 用于不同的处理器架构,你可以在 Mac OS bash 中使用 lipo
创建 FAT 库并仅引用 fat lib。对于您的库,它将是:
lipo -create libvt_eng_james_univ.a, libvt_eng_james_armv77s64.a libvt_eng_beth_simulation.a -output lib_eng_james_fat.a
可能是libvt_eng_james_univ.a已经胖了,可以通过
查看
lipo -info libvt_eng_james_univ.a
它将向您展示 fat lib 中的所有架构:模拟器 armv7 为 i386 x86_64,设备为 armv7s arm64。
之后,只需将 Xamarin 主项目中的这个绑定项目作为简单库项目引用即可。然后你可以像使用其他库一样使用所有 类。
看来你和我有同样的问题,检查我的问题,link Objective-C 的 Xamarin 库有一个很好的答案。
希望对您有所帮助
我有 NeoSpeech 库(文本到语音)IOS 有 .a 、 .h 和数据库文件。该库在 ios 中运行良好。现在我必须在 Xamarin 项目中使用这个库。我正在尝试使用静态库进行消费,但无法在其他库中调用库,因此我无法在静态库中使用 neospeech 库。 xamarin 中还有另一个选项,即与 xamarin 链接的本机 C,但没有适当的文档。在我的 scanrio 中使用链接本机库也很好。请帮助我。
谢谢
尝试使用 Objective Sharpie 它需要 头文件 (不是 .a 文件)并生成 C# api 定义文件:ApiDefinition.cs 和StructAndEnums.cs。有时取决于你的 h 文件,它只生成 StructAndEnums。可能没问题,但如果不是 sharpie 应该报告一些错误,您可以通过 SO 搜索。
然后您可以创建 Binding 项目并参考其中的 .a 文件并生成 ApiDefinitions。如果你有单独的.a 用于不同的处理器架构,你可以在 Mac OS bash 中使用 lipo
创建 FAT 库并仅引用 fat lib。对于您的库,它将是:
lipo -create libvt_eng_james_univ.a, libvt_eng_james_armv77s64.a libvt_eng_beth_simulation.a -output lib_eng_james_fat.a
可能是libvt_eng_james_univ.a已经胖了,可以通过
查看lipo -info libvt_eng_james_univ.a
它将向您展示 fat lib 中的所有架构:模拟器 armv7 为 i386 x86_64,设备为 armv7s arm64。
之后,只需将 Xamarin 主项目中的这个绑定项目作为简单库项目引用即可。然后你可以像使用其他库一样使用所有 类。
看来你和我有同样的问题,检查我的问题,link Objective-C 的 Xamarin 库有一个很好的答案。
希望对您有所帮助