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>
 李二狗 — @Meniny
                李二狗 — @Meniny
             
            
             
            
             
            
             
                 
                