跳转到内容

已知问题

  • 当您开发时,如果您使用 CLI 的 Ionic 实时重载功能,它会覆盖插件,因此您将永远看不到更新。
  • 它在底层使用与 Ionic 相同的系统,因此您将看不到更新。
  • 当推送大型更新 (> 20mb) 时通常会发生这种情况,很大比例的用户将无法获得最新版本。 过去,用户需要保持应用打开直到下载完成,现在我们使用后台下载,但仍限制在几秒钟内。

我们在印度的设备上发现了一些问题,并与用户通话,让他们尝试不同的 DNS 服务器,结果成功了。

因此,如果您遇到此问题,请尝试使用不同的 DNS 服务器,如 Cloudflare 或 Google DNS。

Cloudflare: 1.1.1.1 和 1.0.0.1

Google DNS: 8.8.8.8 和 8.8.4.4 或 dns.google

当您推送自托管更新时,请注意不能使用 “HTTP” 端点,因为这违反了 Android 应用的安全策略,如果您仍想这样做,请遵循此指南:

解压问题: DEFLATED 条目可以有 EXT 描述符

如果您使用 CLI 以外的工具压缩 bundle,您的 zip 格式可能不正确,请使用 CLI 命令 npx @capgo/cli zip BUNDLE_FOLDER

这是 Java 的已知问题:

  • 如果您遇到 usesCleartextTraffic 问题,这是因为插件遵循 sonar cloud 推荐的良好实践,在 90% 的情况下它会正常工作,但某些插件会导致问题。

要修复它,请在 android/app/src/main/AndroidManifest.xml<application> 键中添加:

tools:replace="android:usesCleartextTraffic"
xmlns:tools="http://schemas.android.com/tools"

NSPrivacyAccessedAPICategoryUserDefaults 字典键添加到您的隐私清单(通常为 ios/App/PrivacyInfo.xcprivacy):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<!-- 如果文件已存在,请将此 dict 条目添加到数组中。 -->
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>

我们建议声明 CA92.1 作为访问 UserDefaults API 的原因。

使用本地服务器测试更新时,应用会请求网络权限,这是正常行为,使用远程服务器时不会出现此情况。

在手动模式更新时,某些事件不易捕获,例如更新失败会在 JS 代码重新加载之前触发,因此您将无法捕获它。

一种替代方法是列出 bundle 并检查错误统计信息以了解更新是否失败。

我们需要在未来找到更好的方法来处理这个问题,但这不是优先事项,因为自动模式是推荐的更新方式。

欢迎提交 PR 帮助我们改进这一点。

如果您的 CLI 在执行任何操作时遇到问题,

请检查 appIdappName 是否存在于您的 capacitor.config.ts

遵循官方文档的指南: