常规
Swiftgrounds 是一个由社区驱动的平台,开发者和学生可以在此分享和发现 Swift Playground 项目。

2025 年 1 月,Apple 移除了在 Swift Playground 应用内直接订阅 Playground Feed 的功能。

Swiftgrounds 正是为了填补这一空白而诞生的:一个让开发者、教育工作者和学生能够继续使用 Apple 最初设计的订阅 Feed 格式来分享和发现 Swift Playground 的平台。
1创建账户并验证您的域名。
2在您的域名上托管一个 JSON Feed,描述您的 Playground,包括标题、描述、难度等级和下载 URL 等字段。
3前往您的 Feed 页面,提交 Feed 的 URL。
4Swiftgrounds 会自动获取、解析并展示您的 Playground。
不可以。Swiftgrounds 是一个目录,而非托管服务。我们的目标是复现 Apple 最初在 Swift Playground 应用中构建的体验——发布者在自己的域名上托管内容,应用订阅其 Feed。这种模式让创作者完全拥有和掌控自己的作品。

您可以在任何地方托管 Playground 文件(GitHub Pages、个人网站、CDN),然后通过 JSON Feed 进行描述。Swiftgrounds 读取该 Feed 并让您的 Playground 被更多人发现。无需上传步骤,无存储限制,无平台锁定。您的内容始终在您的域名上。
Feed 格式
Swiftgrounds 使用 Apple 最初为 Swift Playground 订阅定义的同一 JSON Feed 格式。

Feed 级别必填字段:
formatVersion, title, publisherName, feedIdentifier, contactURL, documents

文档级别必填字段:
title, overviewSubtitle, description, contentIdentifier, contentVersion, url
JSON
{
  "title": "My Playgrounds",
  "publisherName": "Your Name",
  "feedIdentifier": "com.example.feed",
  "contactURL": "https://example.com",
  "formatVersion": "1.0",
  "documents": [ ... ]
}
可选的文档字段包括 detailSubtitledifficultyLevel(beginner、intermediate、advanced、expert)、publishedDatelastUpdatedDate(ISO 8601 格式)、thumbnailURL(902×678px)、bannerImageURL(1080×400px)、previewImageURLs(800×600px)以及 additionalInformation

additionalInformation 数组以名称/值对的形式存储额外的元数据,每个条目包含 namevalue 和可选的 type 字段("string""date")。
可以。要支持多种语言,您的主 Feed URL 指向一个 JSON 对象,该对象将语言区域 ID 映射到本地化的 Feed 文件:
JSON
{
  "en": "en-feed.json",
  "fr": "fr-feed.json",
  "es": "es-feed.json"
}
每个本地化的 Feed 遵循标准格式。
有的。Apple 在 WWDC 2018 上发布了一个完整的 Session,介绍了如何创建和发布 Swift Playground 订阅。内容涵盖 Feed 格式的详细信息,包括章节结构、资源添加和 Feed 托管。

Apple Developer 网站上的页面目前已下架,但视频和幻灯片仍可访问。
WWDC18 · Session 413 · 35:23
Create Your Own Swift Playgrounds Subscription
Holly Borla & Grace Kendall
域名验证
域名验证用于证明您拥有托管 Feed 的域名。这可以防止他人提交来自其不拥有的域名的 Feed。您的 Feed URL 必须托管在已验证的域名上。
在账户设置中添加域名后,您将收到一个验证码。您可以通过以下任一方式进行验证:

方式一:Meta 标签。
在您首页的 <head> 中添加以下内容:
HTML
<meta name="swiftgrounds-verification" content="your-code">
方式二:文本文件。
/.well-known/swiftgrounds-verification.txt 路径下创建一个文件,内容为您的验证码。
GitHub Pages 默认使用 Jekyll,而 Jekyll 会忽略以点号开头的文件和文件夹(如 .well-known)。可以通过在仓库根目录添加一个空的 .nojekyll 文件来解决:

Shell
touch .nojekyll
git add .nojekyll
git commit -m "Disable Jekyll processing"
git push
或者,您也可以改用 meta 标签方式,这完全不需要 .well-known 文件夹。
账户
可以,但为防止滥用,用户名更改有频率限制。更改用户名后,您需要等待一段时间才能再次更改。下次可更改的确切日期会显示在您的账户页面上。
头像由 Gravatar 提供。

要更新头像,请使用您在 Swiftgrounds 注册时相同的电子邮箱地址创建或更新您的 Gravatar 账户。
删除账户将永久移除您的所有数据,包括个人资料、Feed、Playground 和域名验证。此操作不可撤销。