生成适用于 Android 的 Xamarin 应用
若要开始生成第一个 Xamarin Android 应用,必须:
- 使用 GitHub、Bitbucket、VSTS 和 (连接到存储库服务Azure DevOps) 。
- 选择应用所住的存储库和分支。
- 选择要构建的 Android 项目。
- 设置第一个生成。
备注
若要使应用在真实设备上运行,必须使用有效的 KeyStore 对生成进行签名。
1.链接存储库
如果以前尚未连接到存储库服务帐户,则必须首先进行此操作。 连接帐户后,选择 Xamarin 项目所在的存储库。 必须具有管理员和拉取权限才能为存储库设置生成。
2.选择分支
选择存储库后,选择要构建的分支。 默认情况下,App Center列出所有活动分支。
3.配置生成
必须在首次生成之前配置 Xamarin 项目。
3.1. 生成触发器
默认情况下,生成服务使用持续集成,因此每次开发人员推送到配置的分支时都会触发新的生成。 如果希望手动触发新的生成,可以在 "配置" 窗格中更改此设置。
3.2. 项目和配置
如果存储库中的可用项目位于分析范围内,则会填充这些项目。 为 Android 版本选择正确的项目,然后选择相应的配置。
备注
为了获得最佳性能,分析当前限制为四个目录级别,包括存储库的根目录。
3.3. Mono 版本
App Center 允许将不同的 Mono 环境与各自的 Xamarin Android SDK 用于生成。 这样,我们就保持了向后兼容性,同时还支持最新功能。 新的分支配置的默认 Mono 版本是最新的稳定版本。 您可以选择使用以前的 Mono 环境之一来构建早期版本的框架或库。
选择生成配置中的 Mono 版本时,将在其旁边显示绑定的 Xamarin. Android SDK 版本。 有关 Xamarin SDK 版本更新的详细信息,请阅读 xamarin 版本博客。
3.3.1. .NET Core 版本
将基于用于生成的 Mono 版本自动选择正确的 .NET Core 版本,不能覆盖。 您可以查看 Mono 到下表中的服务所使用的 .NET Core 的映射:
| Mono | .NET Core |
|---|---|
| <= 5.18 | 2.2.105 |
| 6.0 | 2.2.300 |
| 6.4 | 3.0.100 |
| 6.6 | 3.1.100 |
| 6.8 | 3.1.200 |
| 6.10 | 3.1.300 |
| 6.12 | 3.1.401 |
3.4. 生成 Android 应用捆绑包 (.aab)
Android 应用捆绑包是一种分发格式,用于为特定设备生成优化的 APK。 可以将其上传到Play Store。 可以在官方 Android 文档 和Xamarin.Android 9.4发行说明 中了解有关Android应用捆绑包的更多内容,这还可以帮助你决定是否要生成捆绑包以及常规.apk.
打开 Android 应用捆绑的选项以生成 .aab 和 .apk 。 如果 .csproj 文件包含在 aab 属性 AndroidPackageFormat 中,则此选项将自动打开。 .aabXamarin.Android 9.4 及更高版本支持生成 。
3.5. 递增版本号
启用后,应用AndroidManifest.xml版本中的版本代码会自动递增。 更改发生在预生成之前,不会提交到存储库。
3.6. 代码签名
如果启用,成功的生成 .apk 将生成文件和 .aab 附加文件。 若要将生成释放到Play Store,必须使用有效的密钥存储与别名对生成进行签名。 若要对分支生成的生成进行签名,请启用配置窗格中的代码签名,上传密钥存储,并提供配置窗格中所需的值。 可以阅读更详细的 代码签名说明。 .aab使用与 相同的凭据对 进行签名 .apk 。
3.7. 在真实设备上启动成功生成
使用新生成的 .apk 文件测试应用是否实际在设备上启动。 这会增加大约10分钟的总生成时间。 我们的 测试集成指南中提供了详细信息。
3.8。 Nuget 还原
如果将 NuGet.config 文件签入到存储库中,并将其放在 .sln 存储库的根级别,则在添加专用 NuGet 源时 App Center 会还原这些源,如以下示例中所示。 可以使用 环境变量安全地添加凭据:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
<add key="MyGet" value="https://www.myget.org/F/MyUsername/api/v2/index.json" />
<add key="MyAuthNuget" value="https://nuget.example.com/v2/index.json" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<packageSourceCredentials>
<MyAuthNuget>
<add key="Username" value="$USER_VARIABLE" />
<add key="ClearTextPassword" value="$PASSWORD_VARIABLE" />
</MyAuthNuget>
</packageSourceCredentials>
</configuration>
如果你有复杂的配置并且需要更多的信息,请参阅 配置 NuGet 行为。
3.9。 分发生成
可以将每个成功的生成配置为将分支分发到以前创建的通讯组或存储目标。 你可以添加新的通讯组,或从分发服务中 配置存储连接 。 始终有一个名为 "协作者" 的默认通讯组,其中包括有权访问该应用的所有用户。
备注
如果要分发到 Google Play 商店,则 () 具有 Android 应用程序捆绑包, .aab 并且如果启用,将分发该包。 对于 App Center 通讯组和 Intune 商店目标, .apk 将使用常规,即使 .aab 也生成了。
4. 生成结果
生成触发后,生成将处于以下状态之一:
- 已 排队-生成正在等待释放资源的队列中。
- 生成 -正在运行生成。
- 成功 -已成功完成生成。
- 失败 -生成已停止但出现故障。 您可以通过下载和检查生成日志来解决出现问题的问题。
- 已取消 - 生成已由用户操作取消或已退出。
4.1. 生成日志
对于已完成的生成 (成功或失败) ,请下载日志,详细了解生成如何进行。 App Center提供包含以下文件的存档:
|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
|-- <build-step-1>
|-- <build-step-2>
|--
|-- <build-step-n> (e.g. n_Post Job Cleanup.txt)
位于存档 (目录中的生成步骤) 有助于了解生成失败的步骤 build/ 和原因。
4.2. 应用 (.apk)
文件 .apk 是一个 Android 应用程序打包文件,用于存储 Android 应用。 如果生成已正确签名,则该文件可以安装在实际设备上 .apk ,并部署到Play Store。 如果生成尚未签名,则应用可以在模拟器上运行或用于其他目的。
支持的版本和要求
App Center支持可移植类库 (PCL ) .NET Standard项目 。 有关 云生成计算机的版本 ,请参阅.NET Standard。
App Center不支持 Xamarin 组件存储中的组件,我们建议在可用时使用 NuGet 包。 如果使用的是无法替换的组件,请联系我们。 请参阅 帮助和反馈。