0

我正在评估 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,这不是我知道如何从中获取调试信息的工具,但在控制台运行时我没有看到任何红色。

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

4

1 回答 1

1

从 Ionic 论坛帖子中,我设法将事情拼凑起来。总而言之,“离子部署添加”命令似乎没有执行所有必需的配置以使 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)。

于 2021-01-27T15:23:28.667 回答