构建适用于 Android 的本机应用程序

App Center 可以使用响应本机版本0.34 或更高版本来生成响应本机应用。

若要开始构建你的第一个响应本机 Android 应用程序,你必须:

  1. (GitHub、Bitbucket、VSTS、Azure DevOps) 连接到存储库服务帐户。
  2. 选择应用程序所在的存储库和分支。
  3. 选择 package.json 要生成的项目。
  4. 设置第一个生成。

备注

要使应用程序在实际设备上运行,必须使用有效的证书对生成进行代码签名。

1. 链接存储库

如果你之前未连接到存储库服务帐户,则必须先执行此操作。 帐户连接后,选择响应本机项目所在的存储库。 您必须具有管理员权限和请求权限才能为存储库设置生成。

2. 选择分支

选择存储库后,选择要生成的分支。 默认情况下,App Center 列出所有活动分支。

3. 设置第一个生成

第一次生成之前,必须先配置响应本机项目。

3.1. Project

选择项目的 package.json 。 App Center会自动从关联的 build.gradle ( 应用 级别) 文件中提取信息,包括依赖项、生成工具版本、生成类型和产品风格。

备注

为获得最佳性能,分析目前限制为四个目录级别,包括存储库的根目录。

3.2. 生成变体

可用的生成变体将填充在项目的 build.gradle (应用级别文件中指定的生成类型和) 风格。 选择应生成哪个生成变体。

备注

App Center Build 支持将生成类型与调试、发布 (自定义定义版本和一个可选产品风格) 生成类型的组合。 目前不支持检测多种产品风格的组合。

3.3. Node.js 版本

选择Node.js版本 阅读有关如何选择版本Node.js版本

3.4. 生成触发器

默认情况下,每次开发人员推送到配置的分支时,都会触发新的生成。 这称为"持续集成"。 如果希望手动触发新生成,可以在配置窗格中更改此设置。

3.5. 生成 Android 应用捆绑包 (.aab)

Android 应用捆绑包是一种分发格式,可以上传到Play Store。 它用于为特定设备生成优化的 APK。 可以在官方 Android文档中了解有关 Android 应用捆绑包的更多内容,这还有助于了解是否要与常规一起生成捆绑包 .apk.

打开 Android 应用捆绑的选项,以生成 .aab 除 之外。 .apk 如果 build.gradle (应用) 包含 android.bundle 块,则此选项将自动打开。

3.6. 递增版本号

启用后,应用AndroidManifest.xml版本中的版本代码会自动递增。 更改发生在实际生成过程中,不会提交到存储库。

3.7。 在真实设备上启动成功的生成

使用新生成的 APK 文件来测试你的应用程序是否在实际设备上启动。 启动测试将增加大约10分钟的总生成时间。 阅读有关 如何配置启动测试的详细信息。

3.8。 代码签名

成功生成会生成 .apk 文件,如果启用,则会生成附加 .aab 文件。 若要将生成发布到 Play Store,必须使用存储在密钥存储中的有效证书对其进行签名。 若要对从分支生成的生成进行签名,请在 "配置" 窗格中启用 "代码签名",将密钥存储上传到存储库,并在 "配置" 窗格中提供相关值。 你可以详细了解 Android 代码签名 App Center 的 android 代码签名文档.aab将使用与相同的凭据进行签名 .apk

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 应用。 如果生成已正确签名,则应用可以安装在实际设备上,并部署到Play Store。 如果生成尚未签名,则应用可以在模拟器上运行或用于其他目的。

5.支持的版本和要求

构建 Android 应用支持的最低版本为 5.0 (API 级别 21) 。 Android 应用可以具有运行所需的最低 API 级别,但必须至少面向 API 级别 21。

6.生成提示

6.1. 纱

Yarn 包管理器是 的更快、更具确定性的替换 npm 。 如果 yarn.lock 旁边存储库中存在文件,则App Center将使用 package.json Yarn,在生成开始时 yarn install 执行此操作。 否则,它将执行 npm install

6.2. 自定义生成脚本

在执行 App Center 的默认生成命令之前,有几个选项可用于运行脚本。

  • 在项目文件中创建 postinstall 脚本 package.json 。 安装依赖项后,此脚本将自动执行。

      "scripts": {
        ...
        "postinstall" : "npx jetify" // other examples: "node ./postinstall.js" or "./postinstall.sh"
      },
    
  • 使用 App Center 的 自定义生成脚本 功能编写 shell 脚本。

    #!/usr/bin/env bash
    
    # Example: Authenticate with private NPM registry
    echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
    
    # Example: Add your signing key file (from base64 encoded environment variable)
    base64 -d <<< "$ANDROID_JSON_KEY_FILE" > android/keystores/json_key_file.json
    

6.3. 构建多个 Apk

对于 Android 上的本地响应,默认情况下禁用通用 APK 生成。 如果已将应用配置设置为生成多个 Apk,例如,每个 CPU 体系结构或屏幕配置都不同,则需要确保同时构建通用 APK。 App Center 的生成系统使用一个主 APK 文件,并且会忽略特定于特定 CPU/ABI 或屏幕密度的所有 Apk。

若要了解有关 APK 拆分以及如何构建通用 APK 的详细信息,请参阅相应的 Android 开发人员指南。 因此,请确保将 universalApk 设置为,以 true 响应本机生成配置。