

新闻资讯
行业动态要在手机上运行Avalonia应用,需分别完成Android和iOS的构建、签名与部署:Android依赖.NET 8+、JDK 17+及Android SDK,通过VS真机调试或生成APK;iOS必须配对macOS并用Xcode签名,依赖Apple开发者证书;两者共用同一套XAML和ViewModel,核心难点在于环境配置与签名流程。
要在手机上运行 Avalonia 应用,核心是分别完成 Android 和 iOS 平台的构建、签名与部署。两者流程不同,但都依赖 .NET 工作负载和平台 SDK 支持。下面分平台说明关键步骤和常见注意事项。
Android 环境相对成熟,支持模拟器和实体机两种方式:
MyApp.Android)引用 Avalonia.Android 包,.csproj 中目标框架为 net8.0-android,并设置 34.0
dotnet publish -c Release -f net8.0-android -r android-arm64 --self-contained true,输出在 bin/Release/net8.0-android/android-arm64/publish/ 下iOS 构建无法纯 Windows 完成,必须通过网络配对一台运行 macOS 的机器(黑苹果或 Mac),由其调用 Xcode 编译和签名:
dotnet workload install ios 所需组件Info.plist 设置 Bundle Identifier(如 com.yourname.myapp);在项目属性 → “签名”页选择 Manual Provisioning,并填入证书名称(从 Mac 钥匙串复制)无论 Android 还是 iOS,Avalonia 都通过统一入口抽象处理平台差异:
AvaloniaMainActivity,重写 CustomizeAppBuilder 注册平台服务(如字体、触摸事件)AppDelegate 继承 AvaloniaAppDelegate,Main 方法调用 UIApplication.Main 启动TopLevel.GetTopLevel(this)?.InsetsManager.SafeAreaPadding,动态设置 Padding,避免刘海/圆角遮挡内容INavigationService(配合 Community
Toolkit.Mvvm)管理页面栈
只要环境配置到位,Avalonia 的跨平台能力能让同一套 XAML 和 ViewModel 代码,在 Android 和 iOS 上原生运行,无需重写 UI 层。难点不在逻辑,而在初始环境打通和签名流程。