Ionic Appflow 实时更新未出现在设备上

Ionic appflow live update doesn't appear on device

我正在评估 appflow,因为它对我们的项目非常有用,并且很想获得其中一个付费计划。

但是,我似乎无法使用我的 Ionic/Angular/Capacitor 应用进行基本的实时部署,而且我对如何排除故障有点不知所措。

我已按照文档操作并在我的应用中安装了 SDK。 我可以在 string.xml 和 info.plist.

中看到应用程序 ID、频道名称(生产)和更新方法(自动)

我已经在 appflow(网络构建)中成功构建了该应用程序,我可以在部署屏幕上看到我的构建已分配给类型为 'Live Update' 的生产渠道。

启动画面后我没有在设备上看到任何变化,所以我使用 'Deploy' 插件组合了一个屏幕来显示安装的版本以及是否有可用更新。

import { Deploy } from 'cordova-plugin-ionic/dist/ngx';

...

private async loadDeployInfo() 
{
    const info = await this.deploy.getCurrentVersion();

    if (info) {
      this.liveUpdateId = info.buildId;
    }    

    const updateCheck = await this.deploy.checkForUpdate();

    console.log(updateCheck);

    if (updateCheck.available) {
      this.updateAvailable = updateCheck.build;
    }    
  }

当我的视图加载并显示构建 ID 以及是否有可用更新时,我调用上面的 'loadDeployInfo()'。在设备上测试时都不会显示任何内容。我正在使用电容器,所以 运行 在本地涉及 运行 ngx cap 命令并打开 android studio,这不是我知道如何从中获取调试信息的工具,但我在控制台中看不到任何红色,因为它是 运行.

我有点卡住了。我热衷于使用应用程序流程,但我没有看到基本的实时更新生效,并且没有太多关于故障排除的文档。

从 Ionic 论坛的帖子中,我设法将事情拼凑在一起。总而言之,'ionic deploy add' 命令似乎没有执行使 AppFlow 工作所需的所有配置,至少在基于 Ionic/Angular/Capacitor 的应用程序上是这样。

已按照此处快速入门指南中的步骤进行操作:https://ionic.io/docs/appflow/deploy/api

我需要执行以下操作:

要使 Appflow 继续运行 Android,请在您的 Capacitor 应用程序的 'Android' 文件夹中找到 'strings.xml',如果缺少以下内容,请添加:

  <string name="ionic_max_versions">2</string>
  <string name="ionic_update_api">https://api.ionicjs.com</string>
  <string name="ionic_min_background_duration">30</string>

对于 iOS,找到您的 Capacitor apps 'ios' 文件夹并查找 'info.plist'。在这里您可能会发现现有条目看起来像是编码为变量:

<key>IonApi</key>
<string>$UPDATE_API</string>
<key>IonMaxVersions</key>
<string>$MAX_STORE</string>
<key>IonMinBackgroundDuration</key>
<string>$MIN_BACKGROUND_DURATION</string>

将这些 $ 变量交换为硬编码值:

<key>IonApi</key>
<string>https://api.ionicjs.com</string>
<key>IonMaxVersions</key>
<string>2</string>
<key>IonMinBackgroundDuration</key>
<string>30</string>

更新:

我在 CLI 的 git 存储库上记录了一张票,他们已经更新了它,所以它可能希望在没有上述情况的情况下为您工作(确保您有最新的 ionic CLI)。