{"id":97,"date":"2014-09-14T10:02:15","date_gmt":"2014-09-14T08:02:15","guid":{"rendered":"http:\/\/blog.calj.net\/en\/?p=97"},"modified":"2014-09-14T10:07:02","modified_gmt":"2014-09-14T08:07:02","slug":"the-developers-appstore-nightmare","status":"publish","type":"post","link":"https:\/\/blog.calj.net\/en\/the-developers-appstore-nightmare\/","title":{"rendered":"The developer&#8217;s AppStore nightmare"},"content":{"rendered":"<div style=\"text-align: right;\"><a class=\"synved-social-button synved-social-button-share synved-social-size-16 synved-social-resolution-single synved-social-provider-facebook nolightbox\" data-provider=\"facebook\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Facebook\" href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fblog.calj.net%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F97&#038;t=The%20developer%E2%80%99s%20AppStore%20nightmare&#038;s=100&#038;p&#091;url&#093;=https%3A%2F%2Fblog.calj.net%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F97&#038;p&#091;images&#093;&#091;0&#093;=https%3A%2F%2Fblog.calj.net%2Fen%2Fwp-content%2Fuploads%2F2014%2F09%2Fapple-labyrinth.png&#038;p&#091;title&#093;=The%20developer%E2%80%99s%20AppStore%20nightmare\" style=\"font-size: 0px;width:16px;height:16px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"Facebook\" title=\"Share on Facebook\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"16\" height=\"16\" style=\"display: inline;width:16px;height:16px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.calj.net\/en\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/32x32\/facebook.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-16 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?text=The%20developer%E2%80%99s%20AppStore%20nightmare&#038;url=https%3A%2F%2Fblog.calj.net%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F97&#038;via=calj_net\" style=\"font-size: 0px;width:16px;height:16px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"16\" height=\"16\" style=\"display: inline;width:16px;height:16px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.calj.net\/en\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/32x32\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-16 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.calj.net%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F97&#038;title=The%20developer%E2%80%99s%20AppStore%20nightmare\" style=\"font-size: 0px;width:16px;height:16px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"16\" height=\"16\" style=\"display: inline;width:16px;height:16px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.calj.net\/en\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/32x32\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-16 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=The%20developer%E2%80%99s%20AppStore%20nightmare&#038;body=Hey%20check%20this%20out:%20https%3A%2F%2Fblog.calj.net%2Fen%2Fwp-json%2Fwp%2Fv2%2Fposts%2F97\" style=\"font-size: 0px;width:16px;height:16px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"16\" height=\"16\" style=\"display: inline;width:16px;height:16px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.calj.net\/en\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/32x32\/mail.png\" \/><\/a><\/div><p><span class=\"notranslate\">So this is where I stand: I have been waiting 168 hours, along with thousands of users, for the AppStore to decide to publish the most\u00a0critical update (call it <em>&#8220;Version 2.6.2&#8221;)<\/em> of my CalJ\u00a0app.<\/span><\/p>\n<p><span class=\"notranslate\">Seven\u00a0days ago I posted a fix that addresses a crash that hundreds of users have experienced on the iPhone 5s device (maybe thousands, but fortunately not all of them have written me, some must have read this blog beforehand?).\u00a0<\/span><span class=\"notranslate\">I had worked hard for several hours, with the help of my friend <a href=\"https:\/\/twitter.com\/dsultan\" target=\"_blank\">David S.<\/a> as a guinea pig to track the defect \u2014 which is observed only on an <a title=\"CalJ v2.6.1 crashes on iPhone 5S\" href=\"http:\/\/blog.calj.net\/en\/calj-v2-6-crashes-on-iphone-5s\/\">A7 chip<\/a> \u2014 so as to release it as quick as I could.<\/span><\/p>\n<p><span class=\"notranslate\">And when you receive hundreds of emails a day from users who are wondering, pondering, reporting, complaining or just inquiring for news, 168 hours is a lot.<\/span><\/p>\n<p><span class=\"notranslate\">One can understand Apple&#8217;s policy to keep\u00a0full control of what enters\u00a0its online store, just in case my version 2.6.2 suddenly poses a risk to national security.<\/span><\/p>\n<p><span class=\"notranslate\">However, what bothers me most is control over what <em>comes out.<\/em><\/span> <span class=\"notranslate\">Let me explain.<\/span><\/p>\n<p><span class=\"notranslate\">It&#8217;s silly, my previous version 2.5.1 worked great, people were happy for months (since April). I wanted to post a small update 2.6 which added a harmless little function, and in doing so I injected a bug \u2014\u00a0yes, these are things that happen to any developer, be it the best of the universe and G.od knows it&#8217;s me \u2014\u00a0and this happens all the more easily when you&#8217;re a hobbyist individual who does not own \u00a0all device models in the Apple brand for the purposes of experimentation.<\/span><\/p>\n<p>My previous update, version 2.6, was just broken on iPhone 5s. I had (or rather, Apple had) released it on a Wednesday. It was not long before the first bug reports came into my inbox, and I immediately compiled what I thought to be a possible solution, though without much conviction because I could not duplicate the crash myself. And then, surprise, Apple has validated my &#8220;corrective patch&#8221; 2.6.1 very quickly (Friday). Unfortunately it did not correct anything, and on Sunday, September 7th I posted the famous 2.6.2, which we all have been expecting since then in a shivering suspense.<\/p>\n<p><span class=\"notranslate\">All the while since the release of 2.6 and its guilty cousin 2.6.1 (so seven days already, if you know to count) many users have posted negative reviews on the AppStore, and bad grades, and even a few of them ventured in small words not always sweet. Add to that the fact that Apple has not seen fit to allow the developer to interact with the author of a review. Reviews are some sort of anonymous letter, pasted automatically to the page of the app, for all to see, and no right of answer\u2026 I do not take it personally, but the problem is that these opinions remain for ever, and that&#8217;s the first thing that newcomers will see when they discover CalJ: it could deter them.<\/span><\/p>\n<p>But beyond the negative opinion, the worst is that the newcomers, throughout this week, have downloaded the broken release! The one that crashes upon opening. And that is a catastrophy: we lose the user forever. And there is nothing I can do about it: it would have been good enough for me to take back the latest version, remove it from the distribution in favor of 2.5.1 of April, which works very well. That&#8217;s what Google offers in its GooglePlay. Thus, while my corrective patch is pending validation, my users could have downgraded their version to the last known stable and the new users would have installed something worthwhile, well ranked and appreciated for years.<\/p>\n<p>Unfortunately Apple has not seen fit to provide this type of backward service. I&#8217;m not the only developer in this case but, sorry, knowing this is not enough to reconcile me with this firm.<\/p>\n<p><span class=\"notranslate\">(Mr Apple, if you read us, thank you to allow the developers to go backwards one or two versions, just in case\u2026)<\/span><\/p>\n<p>Hopefully my next update, in 5775 will take place in a more relaxing context!<\/p>\n<p><span class=\"notranslate\">Gabriel.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>So this is where I stand: I have been waiting 168 hours, along with thousands of users, for the AppStore&hellip;<\/p>\n","protected":false},"author":1,"featured_media":104,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[18,17,14],"class_list":["post-97","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","tag-appstore","tag-bug","tag-iphone"],"_links":{"self":[{"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/posts\/97","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/comments?post=97"}],"version-history":[{"count":6,"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/posts\/97\/revisions"}],"predecessor-version":[{"id":103,"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/posts\/97\/revisions\/103"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/media\/104"}],"wp:attachment":[{"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/media?parent=97"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/categories?post=97"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.calj.net\/en\/wp-json\/wp\/v2\/tags?post=97"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}