Date
Jul. 14th, 2024
 
2024年 6月 9日

Post: Sparkle 2: Publishing an update

Sparkle 2: Publishing an update

Published 12:04 Apr 25, 2016.

Created by @ezra. Categorized in #Programming, and tagged as #macOS.

Source format: Markdown

Table of Content

配置好一些基本的内容后,是时候发布一个新版本了。

归档

首先你需要归档你的应用。

  • 如果你使用 DMG,归档后不要再次压缩 .dmg 文件
  • 如果你使用 ZIP,你可以通过 ditto -c -k --sequesterRsrc --keepParent 应用路径 压缩包目标路径 创建
  • 如果你使用 PKG,保证 PKG 文件与应用同名,并以上述的任意一种形式归档
  • 默认状态下 Sparkle 会使用 GUI 进行安装
  • 如果你使用 .sparkle_guided.pkg 后缀而非 .pkg 则 Sparkle 不会显示 GUI,而在后台安装,不需要用户确认每一步

安全性措施

为了提升安全性、避免中间人攻击等,这一步骤是十分必要的。

同样的,也有命令行工具可以使用:

./bin/sign_update 更新归档.zip 你的DSA私钥.pem

输出的字符串是你的更新的 DSA 签名,它会在下一步骤中用到。

更新 Appcast

现在,你需要在你的 Appcast 中添加一个 <item>。这里提供一个模板:

<item>
    <title>Version 2.0 (2 bugs fixed; 3 new features)</title>
    <sparkle:releaseNotesLink>
        https://example.com/release_notes/app_2.0.html
    </sparkle:releaseNotesLink>
    <pubDate>Mon, 05 Oct 2017 19:20:11 +0000</pubDate>
    <enclosure url="https://example.com/downloads/app.zip.or.dmg.or.tar.etc"
               sparkle:version="2.0"
               sparkle:dsaSignature="MC0CFBfeCa1JyW30nbkBwainOzrN6EQuAh="
               length="1623481"
               type="application/octet-stream" />
</item>

其中 sparkle:dsaSignature 的值就是上一步骤中的 DSA 签名字符串。

下载链接

如果你想提供一个下载链接而不是让 Sparkle 自动下载,那么请删除 <enclosure> 标签,然后添加 <sparkle:version><link> 标签。举个栗子:

<item>
  <title>Version 1.2.4</title>
  <sparkle:releaseNotesLink>https://example.com/release_notes_test.html</sparkle:releaseNotesLink>
  <pubDate>Mon, 28 Jan 2017 14:30:00 +0500</pubDate>
  <sparkle:version>1.2.4</sparkle:version>
  <link>https://example.com/manual_update_info.html</link>
</item>

系统要求

如果新的版本有新的最低系统版本要求,你可以为 <item> 添加 <sparkle:minimumSystemVersion> 标签进行说明。举个栗子:

<item>
    <title>Version 2.0 (2 bugs fixed; 3 new features)</title>
    <sparkle:minimumSystemVersion>10.8.4</sparkle:minimumSystemVersion>
</item>

更新说明

如果你需要添加更新内容说明,有两种方式:

  • 添加 <sparkle:releaseNotesLink> 标签进行指明更新说明的链接地址
  • 你可以添加 xml:lang="语言" 属性来做本地化处理
  • <item> 添加 <description> 标签并写入说明。
  • 通过使用 <![CDATA[ ... ]]> 标签,你可以使用未脱义的 HTML 代码
  • 如果你愿意,你可以在这里包含整个 HTML 文档,包括其 <style>

举个栗子:

<item>
    <title>Version 2.0 (2 bugs fixed; 3 new features)</title>
    <sparkle:releaseNotesLink>https://yourdomain.com/releasenotes.html</sparkle:releaseNotesLink>
    <sparkle:releaseNotesLink xml:lang="de">https://yourdomain.com/releasenotes_de.html</sparkle:releaseNotesLink>
    ...
</item>
<item>
    <title>Version 2.0 (2 bugs fixed; 3 new features)</title>
    <description><![CDATA[
        <h2>New Features</h2>
        ...
    ]]>
    </description>
    ...
</item>
Pinned Message
HOTODOGO
I'm looking for a SOFTWARE PROJECT DIRECTOR / SOFTWARE R&D DIRECTOR position in a fresh and dynamic company. I would like to gain the right experience and extend my skills while working in great teams and big projects.
Feel free to contact me.
For more information, please view online résumé or download PDF
本人正在寻求任职 软件项目经理 / 软件技术经理 岗位的机会, 希望加⼊某个新鲜⽽充满活⼒的公司。
如有意向请随时 与我联系
更多信息请 查阅在线简历下载 PDF