Scalar SDK Generator 的 Swift Target 配置详解:packageName、destinations 与 SwiftPM 发布

发布时间:2026/9/14 11:25:30
Scalar SDK Generator 的 Swift Target 配置详解:packageName、destinations 与 SwiftPM 发布 Scalar SDK Generator 的 Swift Target 配置详解packageName、destinations 与 SwiftPM 发布【免费下载链接】scalarScalar is an open-source API platform: Modern REST API Client Beautiful API References ✨ 1st-Class OpenAPI/Swagger Support项目地址: https://gitcode.com/GitHub_Trending/sc/scalarScalar 的 SDK Generator 支持从 OpenAPI 文档生成多种语言的客户端其中swift是官方支持的 target 之一当前处于实验阶段。本文基于仓库中的 Swift 配置文档 展开讲清在 SDK 配置对象里如何声明 Swift target、每个配置项的取值与默认行为以及 Swift 与其他语言 target 在发布链路上的本质区别——它不上传任何包注册表而是直接通过 Git tag 由 Swift Package Manager 解析。Swift target 的基本配置在 SDK 的顶层配置中向targets添加swift键即可生成 Swift SDK 包。一份完整的示例如下{ targets: { swift: { packageName: AcmeAPI, destinations: { production: { repo: acme/acme-swift, branch: main } }, publish: { swiftpm: true } } } }需要特别注意的是文档明确标注Swift target 目前是实验性experimental的。从 SDK 总览 的目标矩阵可以看到Swift 与 Java、Kotlin、Ruby、C#、PHP、Rust、Dart、C 一起列在 Experimental 一栏其包注册表对应 Swift Package Manager官方建议在生产依赖前先用预览仓库审查生成质量。targets是 SDK 配置中控制生成哪些产物的顶层映射除了swift还支持typescript、python、cli、go、rust、java、kotlin、ruby、php、csharp、cpp、dart等键。完整的配置字段说明name、resources、environments等必需属性见 Configuration 总览文档。Target Options各配置项说明Swift target 支持的选项如下PropertyTypeDescriptionpackageNamestringSwift 包名。skipboolean设为true时保留该 target 的配置但不实际生成。destinationsobject生成产物的 GitHub 发布目的地。publishobjectSwift Package Manager 发布配置。几个要点packageName生成Package.swift中的包名消费方在Package.swift里以这个名字引用 SDK。示例中使用AcmeAPI。skip这是所有 target 共用的语义——设置skip: true可以把该 target 的配置留在配置里占位例如保留destinations、publish等已经调好的值但跳过本轮生成。适合在多 target 场景下临时关闭某个语言而不丢失配置。destinations与publish的详细说明见下面两节。Destinations生成产物推向哪个仓库使用destinations.production把生成结果推送到 GitHub 仓库{ targets: { swift: { destinations: { production: { repo: acme/acme-swift, branch: main } } } } }PropertyDescriptionrepoGitHub 仓库owner/name形式例如acme/acme-swift。branch目标仓库中发布被提升promote到的默认分支默认为main。生成产物本身始终写入固定的scalar-generated分支。这里的分支模型值得展开理解整个生成流程运行在受管的分支上——scalar-generated保存干净的生成输出每次构建把新产物推送到该分支再与你的仓库当前状态做三方合并并针对你指定的branch默认main保持一个开放的发布 pull request见 SDK 总览 与 custom code 说明。也就是说branch并不控制生成输出落在哪里而是控制发布被合入哪条分支。合并该 pull request 时仓库里生成的工作流会打 tag 并创建 GitHub Release版本与 changelog 由 release-please 基于提交历史维护。PublishingSwiftPM 发布的特殊性把publish.swiftpm设为true即可让每次发布都打上供 Swift Package Manager 使用的 tag{ targets: { swift: { publish: { swiftpm: true } } } }PropertyDescriptionswiftpm设为true时为每次发布打上 Swift Package Manager 可用的 tag。Swift 与其他语言的发布链路有本质差异。结合 Swift 发布文档 可以确认没有注册表上传。Swift 包通过 Swift Package Manager 直接从 Git tag 解析不存在中心化注册表因此不需要注册表账号、token 或任何 secret也不会生成publish任务或sdk-release.yml。tag 即发布。合并发布 pull request 时切出的vX.Y.ZGit tag 和 GitHub Release 就是已发布的版本本身。开启swiftpm后的具体行为会在仓库中追加VERSIONING.md说明并确保每次发布都被打标同时生成的sdk-ci.yml会在每个 pull request 上构建并测试该包。通用发布选项对 Swift 无效。配置中的共享发布选项authMethod和releaseEnvironment在 Swift target 上没有可作用的对象会被直接忽略——因为 Swift 发布没有上传到注册表这一环节需要鉴权和选择环境。各注册表的对比可参考 Registries 文档。消费方如何安装生成的 Swift 包发布完成后下游项目在自己的Package.swift中直接引用该 Git 仓库与 tag 即可dependencies: [ .package(url: https://github.com/acme/acme-swift.git, from: 1.2.3) ]这里1.2.3对应的就是合并发布 pull request 时切出的v1.2.3tag。需要注意一个前提仓库必须对消费方可达公开仓库或其 Swift Package Manager 能访问的私有仓库否则 tag 解析无法完成——这也是无需注册表模式的固有约束。小结在targets下声明swift并给出packageName即可开启 Swift 代码生成skip: true可保留配置但不生成。destinations.production指定owner/name形式的仓库与发布提升到的branch默认main生成产物始终写入固定的scalar-generated分支。publish.swiftpm: true让每次发布打标供 SwiftPM 解析无注册表、无 secret、无publish任务vX.Y.Ztag 与 GitHub Release 即发布本身共享的authMethod/releaseEnvironment选项会被忽略。Swift target 当前为实验性接入前建议先浏览自动生成的预览仓库中的代码与api.md参考并关注其sdk-ci.yml在 pull request 上的构建测试结果。【免费下载链接】scalarScalar is an open-source API platform: Modern REST API Client Beautiful API References ✨ 1st-Class OpenAPI/Swagger Support项目地址: https://gitcode.com/GitHub_Trending/sc/scalar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询