{"id":222177,"date":"2025-02-23T06:54:57","date_gmt":"2025-02-23T06:54:57","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sparkling-appcast\/"},"modified":"2025-03-01T06:53:39","modified_gmt":"2025-03-01T06:53:39","slug":"sparkling-appcast","status":"publish","type":"plugin","link":"https:\/\/tah.wordpress.org\/plugins\/sparkling-appcast\/","author":23226970,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.7","stable_tag":"0.7","tested":"6.7.5","requires":"5.0","requires_php":"","requires_plugins":null,"header_name":"Sparkling Appcast","header_author":"usielriedl","header_description":"Sparkling Appcast allows your WP site to distribute macOS Apps via Sparkle's appcast.xml.","assets_banners_color":"","last_updated":"2025-03-01 06:53:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":362,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description"],"tags":{"0.6":{"tag":"0.6","author":"usielriedl","date":"2025-02-26 14:02:01"},"0.7":{"tag":"0.7","author":"usielriedl","date":"2025-03-01 06:53:39"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.6","0.7"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[238650,16714,170823,238649],"plugin_category":[],"plugin_contributors":[238651],"plugin_business_model":[],"class_list":["post-222177","plugin","type-plugin","status-publish","hentry","plugin_tags-appcast","plugin_tags-distribution","plugin_tags-macos","plugin_tags-sparkle","plugin_contributors-usielriedl","plugin_committers-usielriedl"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/sparkling-appcast.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Sparkling Appcast is a WordPress plugin. It allows you to use your WordPress site to distribute your macOS App via <a href=\"https:\/\/sparkle-project.org\/\">Sparkle<\/a>. Sparkling Appcast supports multiple channels (alpha, beta, ...).<\/p>\n\n<p>Sparkling Appcast exposes a new shortcode to display a list of app builds.<\/p>\n\n<pre><code>[sappcast_display_builds sappcast_channel=\"{channel-id-or-slug}\"]\n<\/code><\/pre>\n\n<p>Configure Sparkle to ingest the appcast.xml at https:\/\/your.site\/wp-json\/sparkling-appcast\/v1\/appcast.xml. You will see something like the following XML.<\/p>\n\n<pre><code>&lt;rss xmlns:sparkle=\"http:\/\/www.andymatuschak.org\/xml-namespaces\/sparkle\" xmlns:dc=\"http:\/\/purl.org\/dc\/elements\/1.1\/\" version=\"2.0\"&gt;\n    &lt;channel&gt;\n        &lt;title&gt;MyApp&lt;\/title&gt;\n        &lt;link&gt;\/wp-json\/sparkling-appcast\/v1\/appcast.xml&lt;\/link&gt;\n        &lt;item&gt;\n            &lt;title&gt;Version 1.0.1 (2)&lt;\/title&gt;\n            &lt;description&gt;&lt;![CDATA[ This version is better but not yet released! ]]&gt;&lt;\/description&gt;\n            &lt;sparkle:channel&gt;Alpha&lt;\/sparkle:channel&gt;\n            &lt;sparkle:version&gt;2&lt;\/sparkle:version&gt;\n            &lt;sparkle:shortVersionString&gt;1.0.1&lt;\/sparkle:shortVersionString&gt;\n            &lt;pubDate&gt;Wed, 08 Jan 2025 08:56:19 +0000&lt;\/pubDate&gt;\n            &lt;sparkle:minimumSystemVersion&gt;14.0&lt;\/sparkle:minimumSystemVersion&gt;\n            &lt;enclosure url=\"http:\/\/localhost:8088\/wp-content\/uploads\/2025\/01\/app_v2.zip\" length=\"4713394\" type=\"application\/octet-stream\"\/&gt;\n        &lt;\/item&gt;\n        &lt;item&gt;\n            &lt;title&gt;Version 1.0.0 (1)&lt;\/title&gt;\n            &lt;description&gt;&lt;![CDATA[ - New features - New bugs ]]&gt;&lt;\/description&gt;\n            &lt;sparkle:version&gt;1&lt;\/sparkle:version&gt;\n            &lt;sparkle:shortVersionString&gt;1.0.0&lt;\/sparkle:shortVersionString&gt;\n            &lt;pubDate&gt;Wed, 08 Jan 2025 07:43:06 +0000&lt;\/pubDate&gt;\n            &lt;sparkle:minimumSystemVersion&gt;14.0&lt;\/sparkle:minimumSystemVersion&gt;\n            &lt;enclosure url=\"http:\/\/localhost:8088\/wp-content\/uploads\/2025\/01\/app_v1.zip\" length=\"4713394\" type=\"application\/octet-stream\"\/&gt;\n        &lt;\/item&gt;\n    &lt;\/channel&gt;\n&lt;\/rss&gt;\n<\/code><\/pre>\n\n<h3>Configuration<\/h3>\n\n<p>To get started name the application you want to distribute on your WordPress site. You can find the settings page under the App Builds menu.<\/p>\n\n<p><\/p>\n\n<p>If you have multiple channels besides <code>stable<\/code>, you can should add them on wp-admin under the App Builds menu.<\/p>\n\n<p><\/p>\n\n<h3>Usage<\/h3>\n\n<h3>Fastlane<\/h3>\n\n<p>We recommend you use the <a href=\"https:\/\/github.com\/Usiel\/fastlane-plugin-wp_sparkling_appcast\"><code>wp_sparkling_appcast<\/code> plugin<\/a> to upload assets and create builds.<\/p>\n\n<h3>Other<\/h3>\n\n<p>To distribute a new build, you must upload the asset (1), create a build draft (2), after which you can finalize the build and publish it (3). Steps 1 and 2 are typically executed by your build server, while step 3 is done by a human.<\/p>\n\n<h3>1. Uploading Asset<\/h3>\n\n<pre><code>curl --location \"localhost:8088\/wp-json\/wp\/v2\/media?status=publish&amp;title=MyApp%20${VERSION}%20(${BUILD_NUMBER})\" \\\n    --header \"Content-Disposition: attachment; filename=\\\"myapp_v${VERSION}_${BUILD_NUMBER}.zip\\\"\" \\\n    --header 'Content-Type: application\/zip' \\\n    --user \"${USER}:${APPLICATION_PASSWORD}\" \\\n    --data-binary '@\/path\/to\/asset.zip'\n<\/code><\/pre>\n\n<h3>2. Create Build Draft<\/h3>\n\n<pre><code>curl --location 'localhost:8088\/wp-json\/wp\/v2\/sappcast_app_build' \\\n    --header 'Content-Type: application\/json' \\\n    --user \"${USER}:${APPLICATION_PASSWORD}\" \\\n    --data '{\n        \"meta\": {\n            \"sappcast_app_build_version\": string,\n            \"sappcast_app_build_number\": int,\n            \"sappcast_app_build_min_system_version\": string,\n            \"sappcast_app_build_attachment_id\": int,\n            \"sappcast_app_build_changelog\": string,\n        },\n        \"sappcast_channel\": int,\n        \"status\": \"draft\"\n    }'\n<\/code><\/pre>\n\n<h3>3. Publish Build<\/h3>\n\n<p>The user may now go to \"App Build\" on wp-admin and publish the draft after verifying the build. After publishing the build will appear on the relevant appcast (<code>\/wp-json\/sparkling-appcast\/v1\/appcast.xml<\/code>).<\/p>","raw_excerpt":"Sparkling Appcast allows you to use your WordPress site to distribute your macOS App via Sparkle offering an appcast.xml endpoint.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/222177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=222177"}],"author":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/usielriedl"}],"wp:attachment":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=222177"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=222177"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=222177"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=222177"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=222177"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=222177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}