The first personal app that I submitted to the Mac App Store was recently rejected. Was it the subject matter? A bug? Too ugly? Not at all: the app displays an alert when an update is available, and according to an Apple employee “update checks” are forbidden.
Notifying the user that a new version is available is a very common feature in apps: you want your users to be using the latest version. It’s so common that there are many open-source libraries that do this automatically, such as iVersion, the one I used. Unfortunately, It appears that the Apple employee who reviewed my app has a misconception about iVersion. Quoting the rejection message:
The app updates itself outside of the Mac App Store, the app uses iVersion to update the app,
The Mac App Store provides customers with notifications of updates pending for all apps delivered through the App Store, and allows the user to update applications through the Mac App Store app. You should not provide additional update checks or updates through your app.
The Mac App Store Review Guidelines (developer account needed) do, in fact, forbid apps that “use update mechanisms outside of the App Store” (rule 2.21). This is not the case with iVersion, as I explained to the Apple review team:
The app does not update itself outside of the Mac App Store.
When opened, the app consults the App Store API (provided by Apple) and checks if a new version is available. If it is, it shows an alert to the user, offering the choice of opening the App Store.
No update is provided within the app, and the update check is done via the App Store API.
Unsurprisingly, I received no reply. Given that I didn’t consider this issue important enough to delay the release any further, I removed iVersion from the app and resubmitted.
How did Apple find out that I was using iVersion? Quite simply, I told them. Unlike iOS apps, Mac apps require entitlements to use key OS features, such as network access. iVersion uses network access to check for the latest version in the App Store, and Apple requests you to explain how each entitlement is used when submitting the app.
You could argue that iVersion is not necessary. After all, the Mac App Store provides notifications for updates. As an user -and as the number of apps that I install from the Mac App Store grow-, I tend to postpone dealing with these notifications as many are from apps that I’m not currently using. Thus, I believe there is value in opening an app and being told that an update for that app is available.
What’s worse is that there’s plenty of apps in the Mac App Store that use iVersion, or have a similar feature. Lesson learned: the more you tell Apple about your app the most likely it will get rejected.
Update: iVersion’s author agrees with the conclusion.