From now on, we'll be releasing Mac App Store versions of our software shortly after the versions we sell on our site. Here's why.
Updated Mac App Store Release Schedule Policy
From now on, we'll be releasing updated versions of Scrivener and Scapple on our website before we release them on the Mac App Store. This means that Mac App Store customers may have to wait up to a day - possibly even longer - after a new version is available on our site before they can download it from App Store. We're doing this to minimise disruption and inconvenience to our customers.
It's a sad fact of development that no matter how much you test, no matter how hard you work to ensure your software is bug-free, bugs slip through, heedless of your efforts. This was the case with Scrivener 3.1, our biggest macOS update since Scrivener 3 was released. To support dark mode on Mojave, on first launch, Scrivener 3.1 needs to update any existing user customisations to the preferences. There was a bug in this update code that caused a crash with certain combinations of user preferences.
I'm kicking myself that we didn't catch this in testing. We put 3.1 out as a public beta for three weeks before the release to avoid exactly this sort of thing, but ironically the crash was caused by a change I had made to fix a bug reported during the beta phase. The crash is entirely down to me, and I'm sincerely sorry to any users who were affected by it.
The most important thing when something like this slips through the net is to get a fix out immediately to ensure that very few users are affected. And this is exactly what we did. Within half an hour of releasing 3.1, we had received a handful of crash reports all pointing to the same issue. I immediately pulled the automatic updater so that no more users would be prompted to download 3.1, and within an hour of the problem becoming apparent, I had updated the version on our site to 3.1.1, which fixed the issue. As a result, only a handful of users ever saw the crash, and those that did had a fix in their hands within the hour. Disaster averted.
That's the story for users who bought from us direct, at least - our Mac App Store customers aren't so lucky. The Mac App Store review process means that there is no way to push out a critical bug fix with any speed. All you can do is submit it for review and then hope that Apple processes it swiftly. I submitted the 3.1.1 bug fix to the Mac App Store on Thursday, 8th November, around 9pm GMT, moments after releasing the patch on our site. I then requested an expedited review from Apple - Apple allows developers to request an expedited review in extenuating circumstances such as this - which was duly granted. My hope, therefore, was that the fix would be available on the Mac App Store within a matter of hours. Not so. As of the time of writing - 9am on November 10th, a full 36 hours later - Scrivener 3.1.1 is still sitting "in review" with Apple. (Ironically, Scrivener 3.1 went through an unexpedited review in two hours.) As a result, a number of our Mac App Store customers are being affected by the crash, some leaving frustrated one-star reviews.
Of course, it's not Apple's fault that a nasty bug slipped through in 3.1 - that's on me. But on the rare occasion that something like this happens, it's vital that we can respond quickly to minimise the number of users affected, and to get those users that are affected back up and running as soon as possible. That's something we simply cannot do on the Mac App Store. To avoid this situation in the future, therefore, we will no longer be releasing updates simultaneously on our site and on the App Store. Up until now, I have usually synchronised releases by first submitting to the App Store, and then releasing on our site only once the App Store version has passed review. From now on, I will release updates on our site and then submit to the App Store soon afterwards. This way, if something like this should ever happen again, I can ensure the fix is in the App Store version before it goes live, rather than have disruption to our customers entirely dependent on the speed of Apple's review process.
I should stress that this does not mean that we will be treating non-Mac App Store customers as guinea pigs, or that we expect this sort of thing to be common. We will continue to test our software to the highest standards before release, both internally and with beta-testers. We have always prided ourselves on the stability of our software; we are users of Scrivener and Scapple ourselves, and rely on them as much as our customers. This is only the second time in eleven years that a crash has affected a large number of customers (which is of course still two times too many). This change in our update policy is only to help us maintain this track record, ensuring maximum stability for all our customers.
Finally, I'd like to say a big thank you to all of those customers who have been affected and have been so understanding.
Users affected by this bug: If you are affected by the 3.1 crashing bug, please download version 3.1.1 from our website. (Mac App Store users can download the version from our site, too, and it should recognise them as registered users. Once 3.1.1 is available on the App Store, you can then delete the version you downloaded from our site and download from the App Store so that updates continue through that channel.)