I released MindNode touch 2.2.1 earlier today and this release sadly went down the wrong way. Instead of improving stability, it completely removed iCloud integration and the ability to access documents stored in iCloud. Since then I removed the application from the AppStore to prevent users from updating to this version, I submitted a new update and requested an expedited review from Apple. If granted the new update should be available within the next 24-72 hours.
What went wrong
In this blog posting I’d like to explain what caused this issue and I’ll try to answer all open questions.
A few hours after today’s release I was made aware of an issue related to iCloud. When launching the application after the update it would notify the user that iCloud was disabled on the device. As MindNode stores all documents in iCloud, MindNode also launched with no visible documents in the document browser.
I was still on the subway when I heard of this problem, but was immediately able to verify the problem. I should add that it normally takes a few hours before updates start to appear on the AppStore and I’m unable to install them before they appear on the AppStore.
When I started to trouble shoot this problem I first couldn’t understand what was causing this issue. The version I submitted to Apple worked fine on my test devices and I didn’t touch any code related to accessing or querying iCloud in the 2.2.1 release. What was even more surprising is that when building an ad hoc version from the same code I submitted to the AppStore, everything worked fine. (Developers are unable to run the same binary that gets sent to Apple for review. We need to build a special version.)
However when observing MindNode’s behavior I noticed that MindNode behaves as if the system is unable to provide it with the location of the iCloud folder on the device. Normally this indicates that iCloud is disabled, but this was definitely not the case on my device. I even deactivated iCloud and restarted the device several times to make sure this was not an iCloud related issue. This made me realize that this issue could be related to missing iCloud entitlements. Entitlements are a “set of rules” that indicate what permissions an application can request and in iCloud’s case they define what iCloud container an application is allowed to access.
After I realized this problem I was quickly able to verify my suspicion via iTunesConnect (a portal for developers to upload applications to the AppStore). It showed me the following entitlements for 2.2.1.
All iCloud entitlements were missing from the list. I next checked the binary I submitted to Apple and to my surprise all the correct entitlements are in place for this version. I quickly built a new version of MindNode and submitted it to the AppStore. Besides two bug fixes this is more or less the same version I submitted last week. No changes whatsoever to iCloud, but this time all entitlements correctly appear in iTunesConnect.
I honestly have no idea what went wrong during submitting 2.2.1 that could explain this issue, but it appears to be fixed for 2.2.2. After submitting 2.2.2 I removed the application from sale to ensure that no additional users upgrade to this version and requested an expedited review from Apple.
I’m really sorry for all the problems this release has caused you and I hope to have a new version on the store in the next few days. If you need any help please don’t hesitate and contact us!
Update #1 Apple has granted us an expedited review.
Update #2 (Sep 30th, 1pm CET) The update is still in review. I guess Apple will complete the review on Monday.
Update #3 (Oct 1st, 21pm CET) Apple approved the update a few minutes ago. MindNode touch should start to appear on all AppStores within the hour. Thank you for your patience!