相关文章推荐
暴走的荒野  ·  社区精选组件 - Ant Design·  1 周前    · 
奋斗的山楂  ·  怎么在页面didMou ...·  1 周前    · 
犯傻的上铺  ·  将代码从 SharePoint ...·  1 周前    · 
腹黑的足球  ·  WPF TabControl ...·  6 月前    · 
大力的金针菇  ·  unable to import ...·  10 月前    · 
冷静的抽屉  ·  oracle错误 ORA-06502: ...·  1 年前    · 

App Center 可以使用 0.34 或更高版本React Native生成React Native应用。

若要开始生成第一个React Native Android 应用,必须:

  • (GitHub、Bitbucket、VSTS、Azure DevOps) 连接到存储库服务帐户。
  • 选择应用所在的存储库和分支。
  • 选择要生成的项目的 package.json
  • 设置第一个版本。
  • 若要在真实设备上运行应用,必须使用有效证书对生成进行代码签名。

    1. 链接存储库

    如果以前尚未连接到存储库服务帐户,必须先执行此操作。 连接帐户后,选择React Native项目所在的存储库。 必须具有管理员和拉取权限才能为存储库设置生成。

    2. 选择分支

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

    3. 设置第一个生成

    在首次生成之前,必须配置 React Native 项目。

    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存储目标,即使还生成 了 .aab ,也会使用常规 .apk

    4. 生成结果

    生成触发后,生成将处于以下状态之一:

  • 已排队 - 生成在等待释放资源的队列中
  • 生成 - 生成正在运行预定义的任务
  • succeeded - 生成已完成且成功
  • 失败 - 生成已完成,但失败;可以通过下载并检查生成日志来排查错误
  • 已取消 - 生成已被用户操作取消或已超时
  • 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

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

    6.2. 自定义生成脚本

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

  • 在项目的 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 上的React Native,默认禁用通用 APK 生成。 如果应用配置设置为生成多个 APK,例如每个 CPU 体系结构或屏幕配置的不同 APK,则需要确保同时生成通用 APK。 App Center 的生成系统使用一个主要 APK 文件,并将忽略特定于特定 CPU/ABI 或屏幕密度的所有 APK。

    若要详细了解 APK 拆分以及如何生成通用 APK,请阅读相应的 Android 开发人员指南。 因此,请确保universalApk将 React Native 生成配置设置为 true

  •