离子 appflow 实时更新未出现在设备上

问题描述

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

但是,我似乎无法在我的 Ionic/Angular/Capacitor 应用程序中进行基本的实时部署,而且我对如何排除故障感到有些茫然。

我已按照文档操作并在我的应用中安装了 SDK。 我可以在 string.xml 和 info.plist 中看到应用程序 ID、频道名称(生产)和更新方法自动)。

我已经在 appflow(网络构建)中成功构建了应用程序,我可以在部署屏幕上看到我的构建分配给了“实时更新”类型的生产渠道。

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

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 应用程序“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>

更新:

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