Hello everyone,
Last month we finished development of Satoshi Notes, and our canisters are actually live on the IC. You may wonder why then we haven’t released our software yet.
This post is to explain a little the reasons, and also to ask anyone else in our community their advice for us going forward.
First some background, Satoshi Notes is an IC app, and a desktop app. The IC app is already published on the IC and it works well.
The desktop app however needs further packaging to go live, in short both Windows and Mac OS make it hard to publish software without going through a code signing, and notarizing process of the code. This includes paying Apple $100 per year for their Apple Developer Program, and paying Microsoft between $19 or $99 one time fee to join their program. Once you do this, you can distribute your app without Microsoft thinking you are a virus, or dangerous app, and without Mac OS actually stopping your app from installing via a OS level security measure called GateKeeper.
Fortunately Linux does not have this issues, it just works!
If you are an experienced user you can bypass this, but most users would not be able to do it.
Has anyone in our developer community shipped desktop software for Mac or Windows. We plan to make sure our app can be distributed on Mac OS and Windows next week, so any advice you have to share would be most welcome.
And by the way, Happy New Year!
2 Likes
I’ve shipped both macOS and Windows software before at a previous job, as an organization we already had a developer account for our iOS app so the process for the macOS app was rather straightforward.
For Windows on the other hand, we opted to do nothing at the time, after ~2 months, the SmartScreen warning was no longer shown.
In our case, both were just a wrapper for our web application, so we never actually had to update them after the initial few releases. In the end, a few years later, we decided to deprecate both native desktop applications in favor of a PWA.
A PWA already covered all the features we needed and with the right installation instructions, the experience for end-users and thus adoption was easier with less maintenance.
The main headache with any native application development I’ve experienced is the maintenance. There’s a constant flow of mobile/desktop SDK updates and deadlines from app stores.
Not to forget the continuous flow of app store forms you’re required to fill in and constantly update to stay compliant. In our case we had branded applications, so the work was multiplied with the number of clients we had 
From a developer perspective, the best recommendation I can make would be limiting the amount of code and libraries that need to be kept up to date to support various platforms, enabling you to keep the main focus on features instead of maintenance.
For example, when we migrated our mobile app from React Native without a framework to Expo, it reduced the amount of effort to maintain and keep things up to date drastically.
1 Like
Thanks a lot for this reply, I value your experience report especially since you and your previous company shipped to both Mac and Windows.
Nowadays I am very glad we chose Electron, it has plenty of support for shipping apps to desktop stores, and it even includes an updater in the overall package. However, nothing is enabled, it has to be configured, setup, and the right signatures and code signing have to be done.
I will consider whether it makes sense or not to sign our Windows version, perhaps not, and that would save us some trouble… that said Microsoft’s process is far easier and cheaper than Apple. A one time fee.
Have a great weekend, and Happy New Year!
Mr. Sea and anyone else reading this.
Here is an update on what we have found out about code signing the Electron App. Any corrections or advice on how to proceed is most welcome, especially for Windows which is the most confusing.
MS WINDOWS - CODE SIGNING
This was the most confusing, first it seemed we could avoid paying anything, and just distribute an executable installer. Quickly however we realized this would not work because Microsoft SmartScreen displays a very scary message that would probably stop 95% of potential users.
There were two choices, one is obtaining a Code Signing certificate, and the other one is joining Microsoft’s Developer program and app store. Apparently when you join for $19 or $99 a code signing certificate would be given. Here is where we are not sure, would this be enough? Or do we have to pay an additional code signing certificate from another provider such as DigiCert or GlobalSign?
MAC OS - APPLE CODE SIGNING
This one seems to be the most straight forward, join the Apple Developer Program, pay $100, and use the certificate we get from Apple to sign our Electron app. Optionally making the extra effort to put it in the Mac App Store.
Just in case you are curious the Linux version just works, and apparently needs no code signing. Any advice on how to proceed to do a proper code sign would be most appreciated, especially for Windows.