ETDistribution 🛰️

ETDistribution 是一个 Swift 库,它简化了分发新应用程序版本和检查更新的过程。它提供了一个易于使用的 API 来验证是否有新版本可用,并无缝处理更新过程,确保您的用户始终使用最新版本。

特性

安装

前提条件

Swift Package Manager

要将 ETDistribution 集成到您的项目中,请将以下行添加到您的 Package.swift 文件中

dependencies: [
    .package(url: "https://github.com/EmergeTools/ETDistribution.git", from: "v0.1.2")
]

手动集成

  1. 克隆仓库。
  2. 将 ETDistribution 文件夹拖入您的 Xcode 项目。

用法

检查更新

ETDistribution 库提供了一个简单的 API 来检查更新

import UIKit
import ETDistribution

ETDistribution.shared.checkForUpdate(apiKey: "YOUR_API_KEY") { result in
    switch result {
    case .success(let releaseInfo):
        if let releaseInfo {
            print("Update found: \(releaseInfo)")
            guard let url = ETDistribution.shared.buildUrlForInstall(releaseInfo.downloadUrl) else {
              return
            }
            DispatchQueue.main.async {
              UIApplication.shared.open(url) { _ in
                exit(0)
              }
            }
        } else {
            print("Already up to date")
        }
    case .failure(let error):
        print("Error checking for update: \(error)")
    }
}

对于 Objective-C

[[ETDistribution sharedInstance] checkForUpdateWithApiKey:@"YOUR_API_KEY"
                                                 tagName:nil
                                      onReleaseAvailable:^(DistributionReleaseInfo *releaseInfo) {
                                            NSLog(@"Release info: %@", releaseInfo);
                                      }
                                                 onError:^(NSError *error) {
                                            NSLog(@"Error checking for update: %@", error);
                                      }];

如果您不提供完成处理程序,将显示一个默认 UI,询问是否应安装更新。

配置

API 密钥

需要 API 密钥才能验证请求。您可以从 Emerge Tools 仪表板获取 API 密钥。获得密钥后,您可以将其作为参数传递给 checkForUpdate 方法。

标签名称(可选)

标签可用于关联构建,您可以使用标签来表示开发分支、内部项目或任何团队构建。如果同一个二进制文件已使用多个标签上传,则可以指定 tagName 来区分它们。通常不需要这样做,因为 SDK 会自动识别标签。

登录级别

可以配置登录级别,以便某些操作(例如下载更新或检查更新)需要登录。它们在 Emerge Tools 设置 中进行设置。您应该在应用程序级别匹配该级别。

调试覆盖

有几个覆盖选项可以帮助调试集成并测试 SDK。 它们是:

处理响应

默认情况下,如果没有提供完成闭包,SDK 将向用户显示一个警报,提示他们安装该版本。您可以使用 API 提供的闭包自定义此行为。

示例项目

要查看 ETDistribution 的实际效果,请查看我们的示例项目。该示例演示了如何在 Swift 和 Objective-C 项目中集成和使用该库。

文档

有关更详细的文档和其他示例,请访问我们的 文档站点

常见问题

为什么更新检查在模拟器上不起作用?

该库旨在跳过模拟器上的更新检查。要测试更新功能,请在物理设备上运行您的应用程序。

为什么我没有收到任何更新?

可能有以下几个原因:

如何跳过更新?

在处理响应时,您可以检查发布版本字段以决定是否应安装它。

我可以使用 ETDistribution 从 AppStore 获取更新吗?

不能,由于二进制签名者不同(从 AppStore 安装的构建由 Apple 签名),更新将失败。

我可以要求登录才能获得更新吗?

是的,有 3 个安全选项:

这些选项可以在 Emerge Tools 设置 中按平台进行配置。