larryaasen / upgrader

A Flutter package for prompting users to upgrade when there is a newer version of the app in the store.
MIT License
558 stars 271 forks source link

Queries regarding usage of this package #423

Open becjit opened 3 months ago

becjit commented 3 months ago

First of all, thank you so much for this package. Really appreciate you work! I have few questions regarding how to best use the package:

  1. Do we need edSignature? If yes in what situation?
  2. If I use appcast do I still need to given country code separately in the code? for example my app would be available in multiple countries including us and I store user locations separately. This is my code
    final upgrader = Upgrader(
    client: http.Client(),
    // debugDisplayAlways: true,
    countryCode: "get it from user context",
    clientHeaders: {'header1': 'value1'},
    storeController: UpgraderStoreController(
      onAndroid: () => UpgraderAppcastStore(appcastURL: appcastURL),
      oniOS: () => UpgraderAppcastStore(appcastURL: appcastURL),
    ),
    );
  3. What is the equivalent for app store is that itunes url or app store urls:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
    <channel>
        <title>Debt Now App - Appcast</title>
        <item>
            <title>Version 1.15.0</title>
            <description>Minor updates and improvements.</description>
            <pubDate>Sun, 30 Dec 2018 12:00:00 +0000</pubDate>
            <enclosure url="https://play.google.com/store/apps/details?id=com.moonwink.treasury" sparkle:version="1.15.0" sparkle:os="android" />
        </item>
    </channel>
</rss>

should it be

<item>
            <title>Version 1.15.0</title>
            <description>Minor updates and improvements.</description>
            <pubDate>Sun, 30 Dec 2018 12:00:00 +0000</pubDate>
            <enclosure url="https://itunes.apple.com/lookup?bundleId=com.moonwink.treasury"sparkle:version="1.15.0" sparkle:os="iod" />
        </item>

or

<item>
            <title>Version 1.15.0</title>
            <description>Minor updates and improvements.</description>
            <pubDate>Sun, 30 Dec 2018 12:00:00 +0000</pubDate>
            <enclosure url="https://apps.apple.com/us/app/google-maps/id585027354" sparkle:version="1.15.0" sparkle:os="ios" />
        </item>
  1. When should we use enclosure?

  2. What is difference between itunes url vs app store url For example: When i see following I am not too sure if I have to add both in the appcast and if yes where

flutter: upgrader: download: https://itunes.apple.com/lookup?bundleId=com.google.Maps&country=US&_cb=1708305624824631 flutter: upgrader: response statusCode: 200 flutter: upgrader: UpgraderAppStore: version info: appStoreListingURL: https://apps.apple.com/us/app/google-maps/id585027354?uo=4, appStoreVersion: 6.102.3, installedVersion: 1.0.0, isCriticalUpdate: null, minAppVersion: null, releaseNotes: Thanks for using Google Maps! This release brings bug fixes that improve our product to help you discover new places and navigate to them.

  1. When to use appstore/play store to download the latest version vs self hosted. What are the gotchas we should be aware of?
  2. What if my minapp versions are different for ios and android for this config?
Upgrader(
       client: http.Client(),
       countryCode: isoCode,
   minAppVersion: "What should go here?"
   storeController: UpgraderStoreController(
         onAndroid: () => UpgraderAppcastStore(appcastURL: appcastURL),
         oniOS: () => UpgraderAppStore(),
       ),
     );

I went through the doc and able to make the package work, but I did not get a good answer for the questions above to have the right update strategy for my app

Thanks again