Detecting whether Krita comes from a store

Iván Yossi ghevan at gmail.com
Thu Jul 27 05:48:20 BST 2023


The issue with the Krita on Steam for macos is that the krita.app used is the exact same as the one we have for download at krita.org. There is nothing aside from the launch location to differentiate them.

From what emmet told in chat and what I thought is

• add an argument to krita on launch to know we are from the store, we currently launch in krita on steam with a direct call to the krita bin inside MacOS directory. This will pose a problem for older versions if the argument is not recognized and causes error.
• or locate the bundle location and flag it if its running from inside a steam library location (which can be anywhere)
• or add a dummy file to identify the bundle (emmet did that just now and the app ran without complaint)

My guess is that adding a launch argument is more universal than adding dummy files or looking for path locations, however there could be a problem of launching an old version with a new unknown argument (I hace no idea if the launch command is individual for each upload or not for each store).

on macStore we cannot set launch options, but the krita distributed to the macstore is custom signed and can be easily identified on runtime using the sandbox entitlement (that is already coded and available) or as nicolas17 adding a method to check the paid status from the NSBundle '[[NSBundle mainBundle] appStoreReceiptURL]'

Iván Yossi
<ghevan at gmail.com>
IRC: ivanyossi

El 26 de jul de 2023 15:42 -0600, Halla Rempt <halla at valdyas.org>, escribió:
> From a bit of conversation I just caught on IRC: the goal is to distinguish between Krita from stores (paid) and Krita that is free (from our website, aggregators or android store).
>
> It's not important to know whether krita on macos comes from the macos store or steam.
>
> On woensdag 26 juli 2023 12:20:13 CEST Halla Rempt wrote:
> > Hi,
> >
> > Now we've got the begging banner, we need to make sure that people who already have paid for Krita, only see the banner if we're running a special campaign. So, for each store we need to have a way to figure out if it's a store version of Krita. (I forgot what the rules were on the Android Store, but we still have the small donation link, so the support request might be fine?)
> >
> > I've added an empty KisApplication::isStoreApplication method, and that needs fleshing out.
> >
> > So, please, for each of these stores, tell me what diagnistics will work:
> >
> > * Windows Store
> >
> > (Check where the executable is? An environment variable? The location of the user data?)
> >
> > * Steam Store
> >
> > ** Windows
> >
> > ** Linux
> >
> > * MacOS Store
> >
> >
> > For the Epic Store, I'll try to figure it out myself, but that's one of the smallest anyway.
> >
> > We really want to have this done before the second beta, so please give this a bit of priority...
> >
> > Halla
> >
> >
> >
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kimageshop/attachments/20230726/7875e639/attachment.htm>


More information about the kimageshop mailing list