microsoft / store-submission

MIT License
43 stars 8 forks source link

Support for MSIX #12

Open Samuel12321 opened 1 year ago

Samuel12321 commented 1 year ago

currently supports EXE and MSI apps, needs to also support MSIX

LanceMcCarthy commented 1 year ago

Until this is supported, you can use the StoreBroker module, it uses the same credentials.

See how I do it here => https://github.com/LanceMcCarthy/MediaFileManager/blob/cb3e5f41e20e0d611a99405f22478242a7b748e3/.github/workflows/cd_release_msstore.yml#L110

TL:DR - It's accomplished with three commands https://github.com/LanceMcCarthy/MediaFileManager/blob/main/.scripts/SubmitToMsftStore.ps1

  1. Set-StoreBrokerAuthentication
  2. New-SubmissionPackage
  3. Update-ApplicationSubmission
0x5bfa commented 3 months ago

@LanceMcCarthy Do you know if https://github.com/LanceMcCarthy/MediaFileManager/blob/main/.scripts/sbConfig.json this file is for overwrite? or should write everything I need?

LanceMcCarthy commented 3 months ago

@0x5bfa that file contains the store settings for your app. The info isn't part of the build, instead it is used with the Store Broker as app Metadata.

If you remember the first time you publish the app, you need to make a bunch of selections? That's basically what the json file does when you programmatically upload a new version through the API.

So, to answer your question, you need to make sure your version of the file matches your app's store options

0x5bfa commented 3 months ago

Yeah but I just had to set monetize options and age rating options in the first time. Since then from second submission draft I had only had to upload msixupload/appxupload with higher version and then click Submit button in Partner Center. I was wondering if I have to do them everytime(I mean write them in the json file). Thank you for your quick reply btw.

LanceMcCarthy commented 3 months ago

@0x5bfa Ah, I see, you have not created the json file yet. I generated it with the tool and never tried uploading without it. AFAIK, but I do think it is required.

I never had to manually create it, the broker will generate it for you based on what you already have in Partner Center. See https://github.com/microsoft/StoreBroker/blob/master/Documentation/USAGE.md#creating-your-application-payload and follow through the instructions.

image

See all of the instructions here https://github.com/microsoft/StoreBroker, but dont let the amount of text scare you. IT looks like a lot the first time, but after you read it once and follow it, it is super easy to use.

eythaann commented 1 week ago

Until this is supported, you can use the StoreBroker module, it uses the same credentials.

See how I do it here => https://github.com/LanceMcCarthy/MediaFileManager/blob/cb3e5f41e20e0d611a99405f22478242a7b748e3/.github/workflows/cd_release_msstore.yml#L110

TL:DR - It's accomplished with three commands https://github.com/LanceMcCarthy/MediaFileManager/blob/main/.scripts/SubmitToMsftStore.ps1

1. `Set-StoreBrokerAuthentication`

2. `New-SubmissionPackage`

3. `Update-ApplicationSubmission`

@LanceMcCarthy thanks to your answer I will be able to create my own pipeline to upload my msix to the Store. 🥳

azchohfi commented 1 week ago

You can also use the Microsoft Store CLI (github action "microsoft/setup-msstore-cli@v1") It supports both MSI and MSIX, and uses the same credentials (app secret or cert, which can be stored on a key vault). PowerToys does that: https://github.com/microsoft/PowerToys/blob/8b8c75b9a54a342660ce8475989ef283fe39e8fe/.github/workflows/msstore-submissions.yml#L42-L54 Then call this:

msstore publish myapp.msix --appId XXXX
LanceMcCarthy commented 5 days ago

You can also use the Microsoft Store CLI (github action "microsoft/setup-msstore-cli@v1") It supports both MSI and MSIX, and uses the same credentials (app secret or cert, which can be stored on a key vault). PowerToys does that: https://github.com/microsoft/PowerToys/blob/8b8c75b9a54a342660ce8475989ef283fe39e8fe/.github/workflows/msstore-submissions.yml#L42-L54 Then call this:

msstore publish myapp.msix --appId XXXX

I second this. Back when I originally wrote the store script, the CLI was not available. Now that we have the CLI tooling, it is a bit cleaner because you don't need ps modules.

eythaann commented 5 days ago

You can also use the Microsoft Store CLI (github action "microsoft/setup-msstore-cli@v1") It supports both MSI and MSIX, and uses the same credentials (app secret or cert, which can be stored on a key vault). PowerToys does that: https://github.com/microsoft/PowerToys/blob/8b8c75b9a54a342660ce8475989ef283fe39e8fe/.github/workflows/msstore-submissions.yml#L42-L54 Then call this:

msstore publish myapp.msix --appId XXXX

I will try it.