You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从.NET MAUI类库生成AAR与XCFramework供原生平台使用?

满足需求的.NET跨平台实现方案

1. .NET 7+原生打包能力直接搞定

.NET 7及后续版本已经原生支持将业务类库打包为Android/iOS原生格式,同时完美兼容Windows:

  • Android端生成AAR:用dotnet publish命令指定Android目标框架,直接输出AAR包,可直接导入Kotlin/Java项目调用:
    dotnet publish -f net7.0-android -c Release /p:AndroidPackageFormat=Aar
    
    生成的AAR自带JNI绑定层,不用手动写互操作代码。
  • iOS端生成XCFramework:同样用dotnet publish指定iOS目标框架,输出XCFramework,Swift项目直接集成即可:
    dotnet publish -f net7.0-ios -c Release /p:CreatePackage=true
    
  • Windows支持:类库直接编译为net7.0-windows或更高版本,Windows应用可以直接引用调用,完全不需要额外处理。

2. 替代Embeddinator-4000的官方方案

Embeddinator-4000早就停更了,现在官方推荐用上述原生打包能力,配合内置工具优化互体验:

  • Android端:SDK内置的绑定生成工具会自动生成Kotlin/Java可调用的类,省去手动写JNI的麻烦。
  • iOS端:随.NET iOS SDK提供的objc-gen工具会生成Objective-C绑定层,Swift可以直接调用这些绑定类,无缝衔接。

3. 为啥选.NET而不是KMM

你提到KMM适合移动端,但需要支持Windows的话,.NET方案优势明显:

  • 一套代码同时覆盖Windows、Android、iOS,不用维护多平台逻辑分支,节省精力。
  • 直接复用你已经在开发的.NET MAUI业务逻辑,不用重写代码。
  • 依托.NET生态的工具链(NuGet、Visual Studio),跨平台开发的学习成本更低。

踩坑提示

  • 类库要专注业务逻辑,别引入MAUI的UI组件,原生移动端不需要这些,反而会增加包体积和兼容性问题。
  • 复杂异步逻辑要注意跨平台类型映射,比如把.NET的Task转成Android的ListenableFuture或者iOS的Promise,避免出现线程阻塞或回调失败的问题。

内容的提问来源于stack exchange,提问作者mhsarosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:30:23