MAUI发布APK初体验
目的
很早就有想编写安卓程序玩玩的念头了,所以这次学习将MAUI程序生成apk包来玩。
本文apk下载地址:https://azrng.lanzouv.com/iBQRe0eeg8wf ,内容很简单,一个时间轴以及一个点击按钮切换背景图的东西,时间轴是学习Masa Blazor教程的,背景图的接口还是网上白嫖的,重点学习发布了apk,下面来简单介绍一下我的发布步骤吧
切记项目目录不要带中文
程序包设置
每个应用都应该指定唯一的包标识符和版本,配置在项目的.csproj文件中
<!-- 显示名 -->
<ApplicationTitle>MauiAppBlazor</ApplicationTitle>
<!-- App 标识 -->
<ApplicationId>com.companyname.mauiappblazor</ApplicationId>
<ApplicationIdGuid>48CF021D-51ED-47B9-B8BC-E6005BE37A8A</ApplicationIdGuid>
<!-- 版本 -->
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
<ApplicationVersion>1</ApplicationVersion>
创建密钥存储文件
使用密钥存储文件对包进行签名, Java/Android SDK 包含生成密钥存储所需的工具。 生成密钥存储文件后,将它添加到项目中,并将项目文件配置为引用它。提前安装 Java SDK ,以便你可以运行 keytool 工具。
执行下面的步骤创建密钥存储文件
1.打开终端程序并导航到项目文件夹
2.运行keytool工具
keytool -genkey -v -keystore myapp.keystore -alias key -keyalg RSA -keysize 2048 -validity 10000
按照提示输入密码等设置
该工具生成 一个 myapp.keystore 文件,该文件应与项目位于同一文件夹中。
添加对密钥存储文件的引用
修改项目的csproj文件做以下配置
<PropertyGroup Condition="$(TargetFramework.Contains('-android')) and '$(Configuration)' == 'Release'">
<AndroidKeyStore>True</AndroidKeyStore> <!--设置为 True 对应用进行签名-->
<AndroidSigningKeyStore>myapp.keystore</AndroidSigningKeyStore> <!--在上一部分中创建的密钥存储文件: myapp.keystore-->
<AndroidSigningKeyAlias>key</AndroidSigningKeyAlias> <!--传递给 keytool 工具的参数值:键-->
<AndroidSigningKeyPass>1234567</AndroidSigningKeyPass> <!--创建密钥存储文件时提供的密码-->
<AndroidSigningStorePass>1234567</AndroidSigningStorePass> <!--创建密钥存储文件时提供的密码-->
</PropertyGroup>
发布
使用.Net命令行来发布
dotnet publish -f:net7.0-android -c:Release /p:AndroidSigningKeyPass=123456 /p:AndroidSigningStorePass=1234567
参数介绍
-f :目标框架,例如net7.0-android
-c:生成配置,例如Release
/p:AndroidSigningKeyPass:上面AndroidSigningKeyPass项目设置的值,也就是创建密钥文件时候的密码
/p:AndroidSigningStorePass :上面AndroidSigningStorePass项目设置的值,也就是创建密钥文件时候的密码
发布之后会生成到相对路径为:\bin\Release\net7.0-android\publish
包含aab文件和apk文件,有两个 aab 文件,一个未签名,另一个已签名。 签名的变体在文件名中具有 -signed 。
错误处理
如果打包的时候遇到“error XA5300: 找不到 Android SDK 目录。请检查 Visual Studio 中的 Android SDK 管理器是否显示有效的安装。若要使用命令行 生成的自定义 SDK 路径,请将 "AndroidSdkDirectory" MSBuild 属性设置为自定义路径。 ”那么可以修改上面的发布命令为
dotnet publish -f:net7.0-android -c:Release /p:AndroidSigningKeyPass=123456 /p:AndroidSigningStorePass=1234567 /p:AndroidSdkDirectory=D:\Android\android-sdk
这个安卓sdk的地址只能你自己在你电脑上找了。
参考资料
官网资料:https://learn.microsoft.com/zh-cn/dotnet/maui/android/deployment/publish-cli