XcodeCloudKit

XcodeCloudKit 是一个 Swift SDK,让从 App Store Connect API 使用 Xcode Cloud 端点变得轻而易举!

Build Status Platforms

如何使用 XcodeCloudKit

XcodeCloudKit 依赖于 Antoine Van Der Lee 的 appstoreconnect-swift-sdk,它提供了一个出色的 Swift 接口来与 App Store Connect API 交互。

App Store Connect API 要求所有网络请求都必须进行身份验证,并且,由于它不支持 OAuth,您必须从仪表板创建一个 API 密钥。

一旦您生成了密钥,您必须通过使用它的 Factory 枚举来初始化 SDK

import XcodeCloudKit

let xcodeCloudKit = try Factory.make(
    issuerID: "🙈",
    privateKeyID: "🙈",
    privateKey: "🙈"
)

XcodeCloudKit 的结构试图尽可能地镜像 Xcode Cloud 的数据结构,并有三个主要实体:产品 (products)工作流 (workflows)构建 (builds)

产品 (Product) 是您的应用的 Xcode Cloud 表示,您可以请求它们的列表并使用 SDK 选择一个

// Get a list of all available products
let allProducts = try await xcodeCloudKit.allProducts()
// Get a product by Xcode Cloud ID
let productById = try await xcodeCloudKit.product(withId: "...")
// By repository name
let product = try await xcodeCloudKit.product(withRepositoryName: "NowPlaying")

一旦您拥有了一个产品,您就可以直接在该实例上访问它的一个或所有工作流 (workflows),这些工作流是您的 CI/CD 管道的蓝图

// Get a list of all available workflows
let allWorkflows = try await product?.workflows()
// Get a workflow by Xcode Cloud ID
let workflowByID = try await product?.workflow(withId: "...")
// Get a workflow by name
let workflow = try await product?.workflow(withName: "Test Workflow")

一旦您拥有了一个工作流 (workflow),您就可以访问特定工作流的构建 (builds) 或工作流运行的列表

// Get a list of all available builds
let allBuilds = try await workflow?.allBuilds()
// Get a build by its number
let build = try await workflow?.build(withNumber: 32)

您甚至可以为您选择的 git 引用为特定工作流启动新的构建 (build)

try await workflow?.start(atGitReference: .branch(name: "main"))

请注意,SDK 的功能目前是有限的,更多功能将在未来几天和几个月内添加。

安装

就目前而言,XcodeCloudKit 只能通过 SPM 安装,如下所示

dependencies: [
    .package(url: "https://github.com/runway-org/xcode-cloud-kit.git", .upToNextMajor(from: "0.1.0"))
]

许可

XcodeCloudKit 在 MIT 许可下可用,并使用来自开源项目的源代码。有关更多信息,请参阅 LICENSE 文件。

作者

此项目由 Runway 开发和维护开源,并由 Pol Piella Abadia 领导。