Git Product home page Git Product logo

auto_updater's Introduction

auto_updater

pub version

This plugin allows Flutter desktop apps to automatically update themselves (based on sparkle and winsparkle).


English | 简体中文


Platform Support

Linux macOS Windows
✔️ ✔️

Quick Start

Installation

Add this to your package's pubspec.yaml file:

dependencies:
  auto_updater: ^0.2.0

Or

dependencies:
  auto_updater:
    git:
      path: packages/auto_updater
      url: https://github.com/leanflutter/auto_updater.git
      ref: main

⚠️ Windows requirements

  • openssl

Run the following command:

Use Chocolatey

choco install openssl

Usage

import 'package:auto_updater/auto_updater.dart';

void main() async {
  // Must add this line.
  WidgetsFlutterBinding.ensureInitialized();

  String feedURL = 'http://localhost:5002/appcast.xml';
  await autoUpdater.setFeedURL(feedURL);
  await autoUpdater.checkForUpdates();
  await autoUpdater.setScheduledCheckInterval(3600);

  runApp(MyApp());
}

Please see the example app of this plugin for a full example.

Publish your app

Generate private key

Run the following command:

dart run auto_updater:generate_keys

You need to run this command on macOS and Windows systems separately.

macOS

Prepare signing with EdDSA signatures:

Output:

A key has been generated and saved in your keychain. Add the `SUPublicEDKey` key to
the Info.plist of each app for which you intend to use Sparkle for distributing
updates. It should appear like this:

    <key>SUPublicEDKey</key>
    <string>pfIShU4dEXqPd5ObYNfDBiQWcXozk7estwzTnF9BamQ=</string>

Change the file macos/Runner/Info.plist as follows:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

  ...

+	<key>SUPublicEDKey</key>
+	<string>bHaXClrRGMmKoKP/3HJnr/jn2ODTRPAM3VZhhkI9ZvY=</string>
</dict>
</plist>
Windows

Prepare signing with DSA signatures:

Output:

Generated two files:
dsa_priv.pem: your private key. Keep it secret and don't share it!
dsa_pub.pem: public counterpart to include in youe app.
BACK UP YOUR PRIVATE KEY AND KEEP IT SAFE!
If you lose it, your users will be unable to upgrade!

command will generate the private key (dsa_priv.pem) and the public key (dsa_pub.pem) for you. Please Back up your private key and keep it safe, Add your public key to your project either as Windows resource.

Change the file windows/runner/Runner.rc as follows:

...

+/////////////////////////////////////////////////////////////////////////////
+//
+// WinSparkle
+//

+// And verify signature using DSA public key:
+DSAPub      DSAPEM      "../../dsa_pub.pem"

Packaging

To simplify the packaging process, Flutter Distributor is used here, A complete tool dedicated to packaging and publishing Flutter apps.

Add distribute_options.yaml to your project root directory.

output: dist/
releases:
  - name: prod
    jobs:
      - name: macos-zip
        package:
          platform: macos
          target: zip
          build_args:
            dart-define:
              APP_ENV: dev
      # See full documentation: https://distributor.leanflutter.org/configuration/makers/exe
      - name: windows-exe
        package:
          platform: windows
          target: exe
          build_args:
            dart-define:
              APP_ENV: dev
macOS

Run the following command:

flutter_distributor release --name prod --jobs macos-zip
Windows

Run the following command:

flutter_distributor release --name prod --jobs windows-exe

Get signature

macOS

Run the following command:

dart run auto_updater:sign_update dist/1.1.0+2/auto_updater_example-1.1.0+2-macos.zip

Output:

sparkle:edSignature="pbdyPt92pnPkzLfQ7BhS9hbjcV9/ndkzSIlWjFQIUMcaCNbAFO2fzl0tISMNJApG2POTkZY0/kJQ2yZYOSVgAA==" length="13400992"

Update the obtained new signature to the value of the sparkle:edSignature attribute of the enclosure node of the appcast.xml file.

Windows

Run the following command:

dart run auto_updater:sign_update dist/1.1.0+2/auto_updater_example-1.1.0+2-windows-setup.exe

Output:


sparkle:dsaSignature="MEUCIQCVbVzVID7H3aUzAY5znpi+ySZKznkukV8whlMFzKh66AIgREUGOmvavlcg6hwAwkb2o4IqVE/D56ipIBshIqCH8rk=" length="13400992"

Update the obtained new signature to the value of the sparkle:dsaSignature attribute of the enclosure node of the appcast.xml file.

Distributing

Add appcast.xml to your project dist/ directory.

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
    <channel>
        <title>auto_updater_example</title>
        <description>Most recent updates to auto_updater_example</description>
        <language>en</language>
        <item>
            <title>Version 1.1.0</title>
            <!-- For the macOS item, it is recommended to add 'sparkle:version' and 'sparkle:shortVersionString' to the item node, rather than as part of the enclosure. -->
            <sparkle:version>2</sparkle:version>
            <sparkle:shortVersionString>1.1.0</sparkle:shortVersionString>
            <sparkle:releaseNotesLink>
                https://your_domain/your_path/release_notes.html
            </sparkle:releaseNotesLink>
            <pubDate>Sun, 16 Feb 2022 12:00:00 +0800</pubDate>
            <enclosure url="1.1.0+2/auto_updater_example-1.1.0+2-macos.zip"
                       sparkle:edSignature="pbdyPt92pnPkzLfQ7BhS9hbjcV9/ndkzSIlWjFQIUMcaCNbAFO2fzl0tISMNJApG2POTkZY0/kJQ2yZYOSVgAA=="
                       sparkle:os="macos"
                       length="13400992"
                       type="application/octet-stream" />
        </item>
        <item>
            <title>Version 1.1.0</title>
            <sparkle:releaseNotesLink>
                https://your_domain/your_path/release_notes.html
            </sparkle:releaseNotesLink>
            <pubDate>Sun, 16 Feb 2022 12:00:00 +0800</pubDate>
            <enclosure url="1.1.0+2/auto_updater_example-1.1.0+2-windows.exe"
                       sparkle:dsaSignature="MEUCIQCVbVzVID7H3aUzAY5znpi+ySZKznkukV8whlMFzKh66AIgREUGOmvavlcg6hwAwkb2o4IqVE/D56ipIBshIqCH8rk="
                       sparkle:version="1.1.0+2"
                       sparkle:os="windows"
                       length="0"
                       type="application/octet-stream" />
        </item>
    </channel>
</rss>

This example uses the same appcast.xml file for macOS and Windows, and you need to configure the value of the sparkle:os property accordingly.

Start the test update server:

cd dist/
serve -l 5002

Troubleshooting

macOS

  • Make sure you have the sparkle pod added as described in Sparkle Documentation
  • Make sure you have added and enabled network capabilties of your app and disabled the sandbox for release by adding the following to your entitlement files for debug and release
<key>com.apple.security.network.client</key>
  <true/>
<key>com.apple.security.network.server</key>
  <true/>
<key>com.apple.security.app-sandbox</key>
  <false/>

Who's using it?

  • Biyi - A convenient translation and dictionary app.

API

AutoUpdater

Methods

setFeedURL

Sets the url and initialize the auto updater.

checkForUpdates

Asks the server whether there is an update. You must call setFeedURL before using this API.

setScheduledCheckInterval

Sets the auto update check interval, default 86400, minimum 3600, 0 to disable update

Related Links

License

MIT

auto_updater's People

Contributors

adg-mh avatar cybrox avatar felixwoestmann avatar jerryfans avatar jzau avatar lijy91 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

auto_updater's Issues

macOS build error

I am try to build macOS but I got error,i don't know why,i am sure has add EdDSA key in Info.plist and add flutter_distributor library

this is my error:
Unhandled exception:
ProcessException: No such file or directory
Command: 7z a dist/1.0.0+1/annual_party_guest_draw-1.0.0+1-macos.zip ./build/macos/Build/Products/Release/*.app
#0 _ProcessImpl._runAndWait (dart:io-patch/process_patch.dart:487:7)
#1 _runNonInteractiveProcessSync (dart:io-patch/process_patch.dart:632:18)
#2 Process.runSync (dart:io-patch/process_patch.dart:68:12)
#3 AppPackageMakerZip.make (package:app_package_maker_zip/src/app_package_maker_zip.dart:36:15)

I already check in ./build/macos/Build/Products/Release has built out app file, so I don't know why error

Is openssl required for development?

It's unclear in the documentation. Do we need openssl just for the development and release or do all clients need openssl in order to update?

Installation instructions incomplete?

I have some problems following the instructions to get the sample to work (for windows).

  1. I added the auto_updater package.
  2. installed openssl
  3. adjusted the main.dart according to the sample
  4. generated the private key
  5. adjusted the Runner.rc (even though it is kinda obvious, it would not hurt to mention that the + sign at the start of the lines should not be copied)
  6. added the distribute_options.yaml
  7. ran flutter_distributor release --name dev --jobs release-windows (the command does not work when using bash on windows, maybe a hint in the readme would be nice)

I now get the following error:

Successfully built Directory: 'build/windows/runner/Release' in 33s
PathNotFoundException: Cannot open file, path = 'windows/packaging/exe/make_config.yaml' (OS Error: The system cannot find the path specified.
, errno = 3)

After creating the missing file (according to this link: distributor.leanflutter.org/docs/makers/exe), which is not mentioned in the readme, I still get the following error:

Successfully built Directory: 'build/windows/runner/Release' in 33s
Error on line 3, column 7: Mapping values are not allowed here. Did you miss a colon earlier?
  ╷
3 │ app_id: 5B599538-42B1-4826-A479-AF079F21A65D
  │       ^
  ╵

Any idea what I am doing wrong?

Update Error

Here's my appcast.xml

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
    <channel>
        <title>example</title>
        <description>Recet updates with new features</description>
        <language>en</language>
        <item>
            <title>Version 6.8.0</title>
            <sparkle:releaseNotesLink>
                https://your_domain/your_path/release_notes.html
            </sparkle:releaseNotesLink>
            <pubDate>Fri, 06 Feb 2016 22:49:00 +0100</pubDate>
            <enclosure url="6.8.0+17\example-6.8.0+17-windows-setup.exe"
                       sparkle:dsaSignature="MEUCIHQYwAFgAa8Yi/bLGh4w2pSSN1agkj5pXhpZgPFgXo8jAiEAkd+kQV1PF6w78S2athd67FrAWigWPjkzZ4CtL6zpacc="
                       sparkle:os="windows"
                       sparkle:version="1.5.5880"
                       length="0"
                       type="application/octet-stream" />
        </item>
    </channel>
</rss>

I've tried changing version in Runner.rc but still not fixed

here's my main.dart

    String feedURL =
        'https://drive.google.com/file/d/****-sharing';
    await autoUpdater.setFeedURL(feedURL);
    await autoUpdater.checkForUpdates();

后台检查更新未生效。

autoUpdater.checkForUpdates(inBackground: false); 使用false时,在开发模式下启动应用程序会提示程序更新 。
image
但是如果使用inBackground: true, 程序就不会有任何提示。 这是为何?

Linux implementation

Okay, so this looks really good so far, but it would be wonderful if this package would support all 3 platforms.

In the case of Linux, we could use AppImage format.
This is an idea that has been used in electron-simple-updater.
Update checking mechanism could be written on the dart side.

Ready to Install Dialog always goes behind the application

Step to reproduce:

  1. Check update is avaliable
  2. if yes than Install the auto update
  3. Once download the update, it automatic goes behind the application

Expected Result:
Once download the update, it should come to the top of the screen layers.

Error when updating after all configuration done in windows and macos

Hy i have this opensource app :https://github.com/kekko7072/lms. I have configured everything, but when I try windows it doesn't update it return an error and not updating.

I have all configured and signed (you can see the sign firm on the opensource project).

What is wrong? It return the error that it's not connected to internet, but the device it is.
In macOS i have issue only on produciton, when i'm building the app with flutter i don't have this issue it update successfully. In production i have this:
An error occurred while launching the installer. Please try again later.

Screenshot 2023-05-28 alle 12 29 45

Note: I'm using firebase hosting as deployment server.

'setFeedURL' is deprecated

The following warning is printed during build

/Users/ben/.pub-cache/hosted/pub.dev/auto_updater-0.1.7/macos/Classes/AutoUpdater.swift:25:19: warning: 'setFeedURL' is deprecated: Please call -[SPUUpdater clearFeedURLFromUserDefaults] to migrate away from using this API and transition to either specifying the feed URL in your Info.plist, using channels in Sparkle 2, or using -[SPUUpdaterDelegate feedURLStringForUpdater:] to specify the dynamic feed URL at runtime
        _updater?.setFeedURL(feedURL)

Allow custom http properties for feedURL

Currently the feedURL seems to be dedicated for public site. It doesn't provide auth header and other things to satisfy the requirement of some serverless functions provider

error RC2135: file not found

I got tired of this error
D:\Projects\Livine\livine\windows\runner\Runner.rc(127): error RC2135: file not found: + [D:\Projects\Livine\livine\build\windows\runner\livine.vcxproj] D:\Projects\Livine\livine\windows\runner\Runner.rc(131): error RC2135: file not found: + [D:\Projects\Livine\livine\build\windows\runner\livine.vcxproj]

it happens after i add this

+/////////////////////////////////////////////////////////////////////////////
+//
+// WinSparkle
+//

+// And verify signature using DSA public key:
+DSAPub      DSAPEM      "./dsa_pub.pem"

in Runner.rc

Windows OS Error: The system cannot find the path specified.

After running: flutter_distributor release --name dev --jobs release-windows

Successfully built Directory: 'build/windows/runner/Release' in 287s
FileSystemException: Cannot open file, path = 'windows/packaging/exe/make_config.yaml' (OS Error: The system cannot find the path specified.

sign_update.dart crashes on Flutter 3.10.0

I'm seeing a crash on the latest Flutter stable - the sign_update binary complains about not being able to modify the arguments list.

Unhandled exception:
Unsupported operation: Cannot add to a fixed-length list
#0      FixedLengthListMixin.add (dart:_internal/list.dart:21:5)
#1      main ([...]/auto_updater-0.1.6/bin/sign_update.dart:21:17)
#2      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:294:33)
#3      _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:189:12)

A simple patch would be to clone the arguments list instead of adding to it, like so:

  final args = List<String>.from(arguments);

  if (Platform.isWindows) {
    if (args.length == 1) {
      args.add('.\\dsa_priv.pem');
    }
  }

  Process process = await Process.start(
    executable,
    args,
  );

I'd submit a PR but I don't think I have the privileges to push to this repository.

【Windows】靜默檢查更新

儅checkForUpdates調用時,
運行每次都會彈出檢查更新的對話框
image
是否可支持靜默狀態檢查更新?即不顯示檢查更新對話框,而只當存在更新時再對話框提醒用戶?
image

update error

I operate according to the document and can download normally, but then I report an error:
更新错误!
更新未正确签名。

Pop-up options

Hi.
I have some questions:
1- Can the user be forced to update and install the latest available version? (If he does not update, he will not be able to run the program)
2- I want to show the software update pop-up when needed. (if not needed, don't show it). How can I do this?
3- How can I customize the pop-up?

dart run auto_updater:generate_keys error

Building package executable...
Built auto_updater:generate_keys.
Unhandled exception:
FormatException: Unexpected extension byte (at offset 10)
#0 _Utf8Decoder.convertChunked (dart:convert-patch/convert_patch.dart:1851:7)
#1 _Utf8ConversionSink.addSlice (dart:convert/string_conversion.dart:304:28)
#2 _Utf8ConversionSink.add (dart:convert/string_conversion.dart:300:5)
#3 _ConverterStreamEventSink.add (dart:convert/chunked_conversion.dart:69:18)
#4 _SinkTransformerStreamSubscription._handleData (dart:async/stream_transformers.dart:111:24)
#5 _RootZone.runUnaryGuarded (dart:async/zone.dart:1594:10)
#6 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
#7 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
#8 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:776:19)
#9 _StreamController._add (dart:async/stream_controller.dart:650:7)
#10 _StreamController.add (dart:async/stream_controller.dart:598:5)
#11 _Socket._onData (dart:io-patch/socket_patch.dart:2381:41)
#12 _RootZone.runUnaryGuarded (dart:async/zone.dart:1594:10)
#13 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)
#14 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)
#15 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:776:19)
#16 _StreamController._add (dart:async/stream_controller.dart:650:7)
#17 _StreamController.add (dart:async/stream_controller.dart:598:5)�

[Windows] downloading update files fails for relative urls

If I create appcast like in the example with relative update files urls, then download procedure fails on windows. Everything works well if url is an absolute one like https://you.com/update.exe

            <enclosure url="1.1.0+2/auto_updater_example-1.1.0+2-windows.exe"
                       sparkle:dsaSignature="MEUCIQCVbVzVID7H3aUzAY5znpi+ySZKznkukV8whlMFzKh66AIgREUGOmvavlcg6hwAwkb2o4IqVE/D56ipIBshIqCH8rk="
                       sparkle:version="1.1.0"
                       sparkle:os="windows"
                       length="0"
                       type="application/octet-stream" />

This is probably because of this line in win sparkle code:
https://github.com/vslavik/winsparkle/blob/b246977b9666953af6c647b36317add7a4e6250b/src/download.cpp#L200

Maybe windows implementation could be switched to one supporting relative urls to preserve compatibility with macos sparkle.
https://github.com/NetSparkleUpdater/NetSparkle
NetSparkleUpdater/NetSparkle#57

【Windows】generate_keys.bat 文件路径错误

flutter pub run auto_updater:generate_keys报错,文件路径未找到
经查为generate_keys.bat关联路径错误

错误的关联路径为: ..\Windows\WinSparkle-0.7.0\bin\generate_keys.bat

fde12cf0a4b1790cff2d487ed8e7c35

293411e0939e580f4ca363bc47d161f

Error.

Cannot open file, path = 'windows/packaging/exe/make_config.yaml' (OS Error: The system cannot find the path specified.

when run flutter_distributor release --name dev --jobs release-windows

Update Error!

macos

An error occurred in retrieving update information. Please try again later.

appcast.xml

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
    <channel>
        <title>auto_updater_example</title>
        <description>Most recent updates to auto_updater_example</description>
        <language>en</language>
        <item>
            <title>Version 0.0.2</title>
            <sparkle:releaseNotesLink>
                https://xx.com/whatscrm/release_notes.html
            </sparkle:releaseNotesLink>
            <pubDate>Sun, 16 Feb 2023 12:00:00 +0800</pubDate>
            <enclosure url="http://product.xrobot.tech/static/public/1.1.0+2/whatscrm-1.1.0+2-macos.zip"
                       sparkle:edSignature="wJx6oRbYZS7m/RcuwVG3me0lh4usB7EFV2IictdIBhXbRHIVvvG6M5Z15GhUfTq0Hg3W1hSsCNWecD0IlLRyDQ=="
                       sparkle:version="0.0.2"
                       sparkle:os="macos"
                       length="61656315"
                       type="application/octet-stream" />
        </item>
        <item>
            <title>Version 1.1.0</title>
            <sparkle:releaseNotesLink>
                https://www.xrobot.tech/whatscrm/release_notes.html
            </sparkle:releaseNotesLink>
            <pubDate>Sun, 16 Feb 2022 12:00:00 +0800</pubDate>
            <enclosure url="1.1.0+2/whatscrm-1.1.0+2-windows.exe"
                       sparkle:dsaSignature="MEUCIQCVbVzVID7H3aUzAY5znpi+ySZKznkukV8whlMFzKh66AIgREUGOmvavlcg6hwAwkb2o4IqVE/D56ipIBshIqCH8rk="
                       sparkle:version="1.1.0+2"
                       sparkle:os="windows"
                       length="0"
                       type="application/octet-stream" />
        </item>
    </channel>
</rss>

entitlements

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>com.apple.security.app-sandbox</key>
	<false/>
    <key>com.apple.security.temporary-exception.mach-register.global-name</key>
	<string>com.apple.screencapture.interactive</string>
    <key>com.apple.security.network.client</key>
    <true/>
    <key>com.apple.security.network.server</key>
    <true/>
    <key>com.apple.security.personal-information.location</key>
    <true/>
    <key>keychain-access-groups</key>
    <array/>
</dict>
</plist>

Are you sure that this plugin works ?

I have a desktop project mostly for windows users and I want to update it by itself. I am attempting to use this plugin. Please, make the documentation more accessible. I am so confused about what to do. I've created a server that holds my exe and appcast.xml file. I am feeding autoupdater from appcast's URL. But it is not working. What do I have to do ?

Update improperly signed in Windows

I was using the version 0.1.6 and everything was working even when using the signature with 2 lines like #38, but now in 0.1.7 I get The update is improperly signed.

"Skip This Version" button doesn't do anything on MacOS

"Skip This Version" button in the macos update dialog doesn't do anything. After I restart the app and call autoUpdater.checkForUpdates() function update app dialog appears again.

Screenshot 2022-05-23 at 15 43 43

I wonder, if the package manages the skip version logic? If no, then is it possible to somehow hide the skip this update button?

【Windows】WinSparkle.lib 目录定位错误

WinSparkle.lib 文件位置定位错误(可能是32位兼容问题?)

报错路径:D:\WORKSPACE\Flutter\windows\flutter\ephemeral.plugin_symlinks\auto_updater\windows\WinSparkle-0.7.0\x64\Release
正确路径:D:\WORKSPACE\Flutter\windows\flutter\ephemeral.plugin_symlinks\auto_updater\windows\WinSparkle-0.7.0\Release

错误信息:
“D:\WORKSPACE\Flutter\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj”(默认目标) (4) ->
[ ] (Link 目标) ->
[ ] 0 个警告
[ ] 1 个错误
[ ] 已用时间 00:00:25.45
[ ] LINK : fatal error LNK1104: 无法打开文件“D:\WORKSPACE\Flutter\windows\flutter\ephemeral.plugin_symlinks\auto_updater\windows\WinSparkle-0.7.0\x64\Release\WinSparkle.lib” [D:\WORKSPACE\Flutter\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
160226404-8ef1b038-3a5a-4d0d-a8a8-6de0f4fac383

Update Error with "launching the installer" on MAC

d1c96cccec382893bc8dd7e5441a813

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
    <channel>
        <title>TEST</title>


        <item>
            <title>Version 1.3.1</title>
            <pubDate>Thu, 24 Dec 2020 10:51:32 +0800</pubDate>
            <enclosure url="http://...:59999/test-1.3.1+10301-macos.dmg"
                       sparkle:edSignature="yaHJS/xmcYT31y/39FCicWCDpCwxu/om6t0wdzyxV69FwZewJG70C/kEsooxSbVNdaMCRiUcvX4+FfguQBGYCg=="
                       length="34508247"

                       sparkle:version="10301"
                       sparkle:os="macos"
                       type="application/octet-stream" />
        </item>

        <item>
            <title>Version 1.1.0</title>
            <sparkle:releaseNotesLink>
                https://your_domain/your_path/release_notes.html
            </sparkle:releaseNotesLink>
            <pubDate>Sun, 16 Feb 2022 12:00:00 +0800</pubDate>
            <enclosure url="1.1.0+2/auto_updater_example-1.1.0+2-windows.exe"
                       sparkle:dsaSignature="MEUCIQCVbVzVID7H3aUzAY5znpi+ySZKznkukV8whlMFzKh66AIgREUGOmvavlcg6hwAwkb2o4IqVE/D56ipIBshIqCH8rk="
                       sparkle:version="1.1.0"
                       sparkle:os="windows"
                       length="0"
                       type="application/octet-stream" />
        </item>
    </channel>
</rss>

不知是dmg制作的有问题还是哪里配的不对?

Issues with mac build locally and on github actions

Hello,
I'm not able to create a working release with the auto_update package.

I followed all the instructions, generated keys, put them in the Info.plist etc. When I run it locally the app is built, but I can't launch it. I'm not getting any information just this:

When I run it on the github actions pipeline I get the following:

'ERROR! Signing key not found for account ed25519. Please run generate_keys tool first or provide key with --ed-key-file <private_key_file>'

I haven't found anything in the documentation about that? Shouldn't it be enough to put the key in the Info.plist?

Would be super happy if someone could help me out, I wasted days on this already.
Thanks in advance!

[✓] Flutter (Channel stable, 3.7.5, on macOS 13.2.1 22D68 darwin-arm64, locale de-DE)
    • Flutter version 3.7.5 on channel stable at /Users/verenazaiser/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision c07f788888 (12 days ago), 2023-02-22 17:52:33 -0600
    • Engine revision 0f359063c4
    • Dart version 2.19.2
    • DevTools version 2.20.1

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/verenazaiser/Library/Android/sdk
    • Platform android-33, build-tools 33.0.1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14C18
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] VS Code (version 1.76.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.60.0

[✓] Connected device (3 available)
    • SM X200 (mobile) • R9PT10CBHTN • android-arm64  • Android 13 (API 33)
    • macOS (desktop)  • macos       • darwin-arm64   • macOS 13.2.1 22D68 darwin-arm64
    • Chrome (web)     • chrome      • web-javascript • Google Chrome 110.0.5481.177

[✓] HTTP Host Availability
    • All required HTTP hosts are available

Building release on a M1 running Parallels with Windows 11

Hello,

I'm currently trying to run a release build on Parallels with Windows 11 on my M1 and running into the following issue:

Launching lib\main.dart on Windows in debug mode...
auto_updater_plugin.obj : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopPluginRegistrarSetDestructionHandler" in Funktion ""public: class flutter::PluginRegistrarWindows * __cdecl flutter::PluginRegistrarManager::GetRegistrar<class flutter::PluginRegistrarWindows>(struct FlutterDesktopPluginRegistrar *)" (??$GetRegistrar@VPluginRegistrarWindows@flutter@@@PluginRegistrarManager@flutter@@QEAAPEAVPluginRegistrarWindows@1@PEAUFlutterDesktopPluginRegistrar@@@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
auto_updater_plugin.obj : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopPluginRegistrarGetView" in Funktion ""public: __cdecl flutter::PluginRegistrarWindows::PluginRegistrarWindows(struct FlutterDesktopPluginRegistrar *)" (??0PluginRegistrarWindows@flutter@@QEAA@PEAUFlutterDesktopPluginRegistrar@@@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
auto_updater_plugin.obj : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_win_sparkle_init" in Funktion ""public: void __cdecl `anonymous namespace'::AutoUpdater::SetFeedURL(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?SetFeedURL@AutoUpdater@?A0xbda41655@@QEAAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
auto_updater_plugin.obj : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_win_sparkle_set_appcast_url" in Funktion ""public: void __cdecl `anonymous namespace'::AutoUpdater::SetFeedURL(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?SetFeedURL@AutoUpdater@?A0xbda41655@@QEAAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
auto_updater_plugin.obj : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_win_sparkle_set_update_check_interval" in Funktion ""public: void __cdecl `anonymous namespace'::AutoUpdater::SetScheduledCheckInterval(int)" (?SetScheduledCheckInterval@AutoUpdater@?A0xbda41655@@QEAAXH@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
auto_updater_plugin.obj : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_win_sparkle_check_update_with_ui" in Funktion ""public: void __cdecl `anonymous namespace'::AutoUpdater::CheckForUpdates(void)" (?CheckForUpdates@AutoUpdater@?A0xbda41655@@QEAAXXZ)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
auto_updater_plugin.obj : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_win_sparkle_check_update_without_ui" in Funktion ""public: void __cdecl `anonymous namespace'::AutoUpdater::CheckForUpdatesWithoutUI(void)" (?CheckForUpdatesWithoutUI@AutoUpdater@?A0xbda41655@@QEAAXXZ)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
flutter_wrapper_plugin.lib(core_implementations.obj) : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopMessengerSend" in Funktion ""public: virtual void __cdecl flutter::BinaryMessengerImpl::Send(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned char const *,unsigned __int64,class std::function<void __cdecl(unsigned char const *,unsigned __int64)>)const " (?Send@BinaryMessengerImpl@flutter@@UEBAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBE_KV?$function@$$A6AXPEBE_K@Z@4@@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
flutter_wrapper_plugin.lib(core_implementations.obj) : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopMessengerSendWithReply" in Funktion ""public: virtual void __cdecl flutter::BinaryMessengerImpl::Send(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned char const *,unsigned __int64,class std::function<void __cdecl(unsigned char const *,unsigned __int64)>)const " (?Send@BinaryMessengerImpl@flutter@@UEBAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBE_KV?$function@$$A6AXPEBE_K@Z@4@@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
flutter_wrapper_plugin.lib(core_implementations.obj) : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopMessengerSendResponse" in Funktion ""public: __cdecl <lambda_6886f86d7d47df0a498d9e8a525eb601>::operator()(unsigned char const *,unsigned __int64)" (??R<lambda_6886f86d7d47df0a498d9e8a525eb601>@@QEAA@PEBE_K@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
flutter_wrapper_plugin.lib(core_implementations.obj) : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopMessengerSetCallback" in Funktion ""public: virtual void __cdecl flutter::BinaryMessengerImpl::SetMessageHandler(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::function<void __cdecl(unsigned char const *,unsigned __int64,class std::function<void __cdecl(unsigned char const *,unsigned __int64)>)>)" (?SetMessageHandler@BinaryMessengerImpl@flutter@@UEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$function@$$A6AXPEBE_KV?$function@$$A6AXPEBE_K@Z@std@@@Z@4@@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
flutter_wrapper_plugin.lib(core_implementations.obj) : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopTextureRegistrarRegisterExternalTexture" in Funktion ""public: virtual __int64 __cdecl flutter::TextureRegistrarImpl::RegisterTexture(class std::variant<class flutter::PixelBufferTexture,class flutter::GpuSurfaceTexture> *)" (?RegisterTexture@TextureRegistrarImpl@flutter@@UEAA_JPEAV?$variant@VPixelBufferTexture@flutter@@VGpuSurfaceTexture@2@@std@@@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
flutter_wrapper_plugin.lib(core_implementations.obj) : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopTextureRegistrarUnregisterExternalTexture" in Funktion ""public: virtual bool __cdecl flutter::TextureRegistrarImpl::UnregisterTexture(__int64)" (?UnregisterTexture@TextureRegistrarImpl@flutter@@UEAA_N_J@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
flutter_wrapper_plugin.lib(core_implementations.obj) : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopTextureRegistrarMarkExternalTextureFrameAvailable" in Funktion ""public: virtual bool __cdecl flutter::TextureRegistrarImpl::MarkTextureFrameAvailable(__int64)" (?MarkTextureFrameAvailable@TextureRegistrarImpl@flutter@@UEAA_N_J@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
flutter_wrapper_plugin.lib(plugin_registrar.obj) : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopPluginRegistrarGetMessenger" in Funktion ""public: __cdecl flutter::PluginRegistrar::PluginRegistrar(struct FlutterDesktopPluginRegistrar *)" (??0PluginRegistrar@flutter@@QEAA@PEAUFlutterDesktopPluginRegistrar@@@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
flutter_wrapper_plugin.lib(plugin_registrar.obj) : error LNK2019: Verweis auf nicht aufgel�stes externes Symbol "__imp_FlutterDesktopRegistrarGetTextureRegistrar" in Funktion ""public: __cdecl flutter::PluginRegistrar::PluginRegistrar(struct FlutterDesktopPluginRegistrar *)" (??0PluginRegistrar@flutter@@QEAA@PEAUFlutterDesktopPluginRegistrar@@@Z)". [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
C:\lipko_desktop\windows\flutter\ephemeral\.plugin_symlinks\auto_updater\windows\WinSparkle-0.7.0\x64\Release\WinSparkle.lib : warning LNK4272: Bibliothekcomputertyp "x64" steht in Konflikt mit dem Zielcomputertyp "ARM64" [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
C:\lipko_desktop\windows\flutter\ephemeral\flutter_windows.dll.lib : warning LNK4272: Bibliothekcomputertyp "x64" steht in Konflikt mit dem Zielcomputertyp "ARM64" [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
C:\lipko_desktop\build\windows\plugins\auto_updater\Debug\auto_updater_plugin.dll : fatal error LNK1120: 16 nicht aufgel�ste Externe [C:\lipko_desktop\build\windows\plugins\auto_updater\auto_updater_plugin.vcxproj]
Exception: Build process failed.
Exited (sigterm)

Here's my flutter doctor output:

[√] Flutter (Channel stable, 3.3.10, on Microsoft Windows [Version 10.0.22621.525], locale de-DE)
    • Flutter version 3.3.10 on channel stable at C:\flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 135454af32 (7 weeks ago), 2022-12-15 07:36:55 -0800
    • Engine revision 3316dd8728
    • Dart version 2.18.6

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.4.4)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.4.33213.308
    • Windows 10 SDK version 10.0.22621.0

[!] Android Studio (version 2022.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    X Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[√] VS Code (version 1.74.3)
    • VS Code at C:\Users\verenazaiser\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.58.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22621.525]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 109.0.5414.120
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 109.0.1518.55

[√] HTTP Host Availability
    • All required HTTP hosts are available

Anyone tried this before and maybe has a workaround/solution?

Thanks in advance!

support generate_appcast

I use CI pipeline to automatically release the version, so I need to be able to automatically update appcast.xml. Hope to support generate_ appcast.

Not working autoupdate

I have created this app to manage links and code snippets.
[https://github.com/kekko7072/lms](LMS APP)
I tried auto update and deployed in Firebase Hosting the 'list' directory but it's not working. When I open an old app it tells me it's already the last version despite showing the new number on the title for example:

Screenshot 2023-03-10 alle 15 13 40

Another question: when I distribute the app to be downloaded I need to Notarise the app using Xcode and so then I can give it to be downloaded, but here it doesn't seem it's necessary, why?

Error improperly signed

I have following the docs about signing exe file but when i try to update the app, its always got error improperly signed.

Why is the signing output two lines? Do I need to merge them?

Hey,
I have a maybe stupid question, but when I'm signing my windows build I'm getting two lines for the signature. When I'm putting them into my appcast.xml file - do I need to separate them somehow or just merge them together? The example here also shows two lines, but not how/if to merge them. If they need to be merged: what reason is there for putting them in separate lines?

image

Thanks in advance!

Error updating in windows.

Hy i have this opensource app :https://github.com/kekko7072/lms. I have configured everything and fixed macOS update, but when I try windows it doesn't update it return an error while updating.

I have all configured and signed (you can see the sign firm on the opensource project).

What is wrong? It return the error that it's not connected to internet, but the device it is.

flutter_distribute : The term 'flutter_distribute' is not recognized as the name of a cmdlet

flutter_distribute : The term 'flutter_distribute' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was include
d, verify that the path is correct and try again.
At line:1 char:1
+ flutter_distribute release --name dev --jobs release-windows
+ ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (flutter_distribute:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

How can ı solve?

How to notarize app in xcode?

image

App sandbox not enabled. The following executables must include the "com.apple.security.app-sandbox" entitlement with a Boolean value of true in the entitlements property list: [( "com.Example.pkg/Payload/TunaVPN_Mac.app/Contents/Frameworks/Sparkle.framework/Versions/B/Autoupdate", "com.Example.pkg/Payload/TunaVPN_Mac.app/Contents/Frameworks/Sparkle.framework/Versions/B/Updater.app/Contents/MacOS/Updater", "com.Example.pkg/Payload/TunaVPN_Mac.app/Contents/Frameworks/Sparkle.framework/Versions/B/XPCServices/Installer.xpc/Contents/MacOS/Installer" )] Refer to App Sandbox page at https://developer.apple.com/documentation/security/app_sandbox for more information on sandboxing your app. (ID: 34c838b3-9428-410c-8971-ebcb2ac04064)

Build Macos Error

Unhandled exception:
ProcessException: No such file or directory
  Command: /Users/yusifahmadov/Desktop/crmappnew/macos/Pods/Sparkle/bin/generate_keys 
#0      _ProcessImpl._start (dart:io-patch/process_patch.dart:401:33)
#1      Process.start (dart:io-patch/process_patch.dart:38:20)
#2      main (file:///Users/yusifahmadov/development/flutter/.pub-cache/hosted/pub.dartlang.org/auto_updater-0.1.4/bin/generate_keys.dart:19:35)
#3      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:295:32)
#4      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)



i got a error when i run flutter pub run auto_updater:generate_keys

Windows Releasenotes open in the browser when calling autoUpdater.checkForUpdates

When I call checkForUpdates, the Release notes box in the winsparkle dialog is blank, and the release notes link is automatically opened in the browser instead of showing the html file inside the Winsparkle Dialog.

I don't have this issue on Mac, and everything else seems to work on windows except for this.

Here is my appcast item (with some information removed)

<item>
            <title>Version 1.7.26</title>
            <sparkle:releaseNotesLink>
                https://staging.blazesql.com/releasenotes.html
            </sparkle:releaseNotesLink>
            <pubDate>Thu, 29 Aug 2023 18:30:07 +0200</pubDate>
            <enclosure url="removed"
                       sparkle:dsaSignature="removed"
                       sparkle:version="12"
                       sparkle:os="windows"
                       length="0"
                       type="application/octet-stream" />
        </item>

Screenshot 2023-08-29 at 14 29 31

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.