Search code examples
code-signingdesktop-bridge

Do I need OV or EV code signing certificate when packaging a classic desktop application for the Windows Store?


I want to add a desktop (WPF) application to the Windows Store using the Desktop Bridge (MakePri, MakeAppx). I have tested my build process using a self-sign certificate and all is well.

However, I cannot find any information stating whether I need an Extended Validation (EV) certificate or if an Organization validated (OV) certificate is sufficient. I know an OV certificate can cause SmartScreen warnings for installer .msi packages.

I also found old links (relating to Windows 8 apps) which say that the store does not use SmartScreen. But I cannot find anything relating to Windows 10 desktop apps packaged via the Desktop Bridge.

Will an OV certificate cause SmartScreen warnings when my converted application is downloaded from the store?


Solution

  • You don't need to use a valid certificate to publish your app to the Store. You just need to sign it with a test certificate. When you upload it to dev. center, it will be signed by Microsoft to be distributed through the Store.

    I couldn't find a documentation that clarifies this, just saying it by my own experience. There are some notes here:

    To test your app in a realistic setting as you prepare for distribution, it's best to sign your app and then install it.

    Visual Studio signs your app by using a test certificate. You'll find that certificate in the output folder that the Create App Packages wizard generates. The certificate file has the .cer extension and you'll have to install that certificate into the Trusted Root Certification Authorities store on the PC that you want to test your app on.

    Also if you use the new update of Visual Studio, you can create Desktop Bridge apps and publish them to the Store entirely through Visual Studio using the Windows Application Package project. It means you don't need to manually pack and sign it, VS does it for you.

    Edit

    Your users do not see an Smart Screen anyways. It makes sense since your app cannot run with administrator privileges. If your app needs a functionality that requires admin privileges, you need to consider it before moving forward.