'. '

AppStore

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(Available on AppStore)
(Available on AppStore)
Line 9: Line 9:
I think [[Apple]] feels they have a problem. Recently they presented new programming language. Why? Because people are reluctant to code in [[ObjectiveC]]? Because there is not enough developers coding apps for [[iOS]]? True, [[ObjectiveC]] is different - especially when you are coming from [[Java]], but then there is [[RoboVM]] and that is certainly better than trying to invent new language. The problem is not the language.
I think [[Apple]] feels they have a problem. Recently they presented new programming language. Why? Because people are reluctant to code in [[ObjectiveC]]? Because there is not enough developers coding apps for [[iOS]]? True, [[ObjectiveC]] is different - especially when you are coming from [[Java]], but then there is [[RoboVM]] and that is certainly better than trying to invent new language. The problem is not the language.
-
Developing for [[iOS]] is expensive. One needs to by a [[Mac]] (as it is not possible to develop to [[iPad]]s and [[iPhone]]s on a different computer than [[Apple]] one). One needs to pay $99 to deploy testing application on own [[iPad]]! Unbelievable. I bought old [[Mac]] and still needed to pay $400 to even get started. That is more than (minimal) monthly wage here!
+
Developing for [[iOS]] is expensive. One needs to buy a [[Mac]] (as it is not possible to develop to [[iPad]]s and [[iPhone]]s on a different computer than [[Apple]] one). One needs to pay $99 to deploy testing application on own [[iPad]]! Unbelievable. I bought old [[Mac]] and still needed to pay $400 to even get started. That is more than (minimal) monthly wage here!
And then the process of publishing to [[AppStore]]! I was expecting it to be painful, and to be honest, it was not that bad. It was just long - four weeks of waiting, waiting and waiting. Should [[Apple]] feel the developers are targeting [[Android]], it is not something to be fixed by a new programming language. The problem is that developing for [[iOS]] is too costly and way too slow.
And then the process of publishing to [[AppStore]]! I was expecting it to be painful, and to be honest, it was not that bad. It was just long - four weeks of waiting, waiting and waiting. Should [[Apple]] feel the developers are targeting [[Android]], it is not something to be fixed by a new programming language. The problem is that developing for [[iOS]] is too costly and way too slow.

Revision as of 11:59, 1 April 2015

Yeah, it takes $99 to get permission to publish iOS applications to AppStore. It required just $25 to publish to GooglePlay. I managed to pay those $25 bucks and publish the app in one day. Will I succeed with AppStore as fast or will it take weeks? I started on Jul 26, 2014 and on Aug 21, 2014 the MineSweeper got accepted. Four weeks.

Contents

Available on AppStore

https://itunes.apple.com/us/app/fair-minesweeper/id903688146

So finally the MineSweeper game is available everywhere: in AppStore, GooglePlay, as a NetBeans module and also directly on the web. I guess I can celebrate. The power of DukeScript's write once, display anywhere is demonstrated. Let me however add few words about Apple:

I think Apple feels they have a problem. Recently they presented new programming language. Why? Because people are reluctant to code in ObjectiveC? Because there is not enough developers coding apps for iOS? True, ObjectiveC is different - especially when you are coming from Java, but then there is RoboVM and that is certainly better than trying to invent new language. The problem is not the language.

Developing for iOS is expensive. One needs to buy a Mac (as it is not possible to develop to iPads and iPhones on a different computer than Apple one). One needs to pay $99 to deploy testing application on own iPad! Unbelievable. I bought old Mac and still needed to pay $400 to even get started. That is more than (minimal) monthly wage here!

And then the process of publishing to AppStore! I was expecting it to be painful, and to be honest, it was not that bad. It was just long - four weeks of waiting, waiting and waiting. Should Apple feel the developers are targeting Android, it is not something to be fixed by a new programming language. The problem is that developing for iOS is too costly and way too slow.

Preparing first Upload

This is the source of information I am going to follow - Ping example: http://asipofjava.blogspot.be/2014/05/pong-aka-retro-game-i-available-in-app.html

I followed the steps, downloaded distribution profile, but then it took a long time to find out where the profile is and what is its name. It is in /Users/<username>/Library/MobileDevice/Provisioning Profiles, thus I could put

tests-MacBook-Pro:minesweeper jarda$ hg diff
diff -r 77670cba08c3 minesweeper/pom.xml
--- a/minesweeper/pom.xml	Sat Jul 26 11:15:18 2014 +0200
+++ b/minesweeper/pom.xml	Sun Jul 27 07:17:58 2014 +0200
@@ -532,7 +532,7 @@
                   <plugin>
                       <groupId>org.robovm</groupId>
                       <artifactId>robovm-maven-plugin</artifactId>
-                      <version>0.0.13.1</version>
+                      <version>0.0.14.1</version>
                       <configuration>
                           <config>
                               <mainClass>org.apidesign.demo.minesweeper.Main</mainClass>
@@ -563,6 +563,9 @@
                               </resources>
                           </config>
                           <includeJFX>false</includeJFX>
+        <iosSignIdentity>iPhone Distribution</iosSignIdentity>
+        <iosProvisioningProfile>E4B14DB7-81F1-4C9D-A3BE-65F86F32027F</iosProvisioningProfile>
+

into my pom file. Something has been generated, but application loader rejects the upload with

ERROR ITMS-9000: "Invalid Provisioning Profile. The provisioning profile included in the bundle org.apidesign.demo.minesweeper.Main [Payload/MineSweeper.app] is invalid. [Missing code-signing certificate.] For more information, visit the iOS Developer Portal."

Trying advice to check the list of certificates with:

$ security find-identity -v -p codesigning
  1) AAB1C4DEABD0B7FEA38F86791617D8EBFC9FB5C7 "iPhone Developer: Jaroslav Tulach (62CX47PZM2)"
  2) 92FF34782870A830C53567290732329E3EED53DC66 "iPhone Distribution: Jaroslav Tulach (8VI366L5Y4)"
     2 valid identities found

I had to remove an automatically generated distribution provisioning profile, obtain new one. Then I was able to upload the app and send it to verification. To pass the verification I had to include Info.plist.xml as suggested in the Ping example. This is the revision that I managed to upload to AppStore for review: http://source.apidesign.org/hg/html~demo/rev/99669e0e8248

1st Review

I was waiting for 1st review more than fourteen days. It turned out to be my mistake. After waiting more than a week I got a feeling something is wrong and uploaded new version of MineSweeper - never do anything like that - that starts the review process from scratch. If you want to get Apple's feedback, just wait patiently.

But the nice thing is that the Apple's review team is responsive and polite. When I sent them email asking what's going on? they quickly and politely replied in three paragraph email which content could be condensed into just wait advice.

Being patient paid off: today morning I found result of the review: rejected. It seems there were three areas of complaints:

3.1: Apps or metadata that mentions the name of any other mobile platform will be rejected

I guess it was complain about Payload/MineSweeper.app/pages/android_logo.jpg and its use on the application welcome screen. I placed the reference to DlvkBrwsr to demonstrate that one can write the application once and package it for various platforms. However I understand that Apple doesn't want to promote Android, so I will remove the JPG file and modify the welcome screen to not reference it. I assume other icons (like NetBeans) are OK, and I plan keep them in.

2.9: Apps that are "beta", "demo", "trial", or "test" versions will be rejected

I used word "demo" while meaning something like "showcase". The Fair MineSweeper game is fully featured, it is not beta or demo by itself. What I wanted to say is that it is "showcase" for the underlying technology which allows people to write applications once and package them for multiple platforms. I'll replace the use of word "demo" with "showcase", OK?

3.2: Apps with placeholder text will be rejected

I don't understand what you mean by placeholder text. The attached screen shot shows the whole welcome screen without identifying the problematic parts. I used the best bootstrap.css design practices to create the welcome page and as far as I can tell, it contains valid (and definitely not placeholder) information. You can be more specific and tell me what sentence was classified as placeholder text. Meanwhile I do redesign of the page to conform to 3.1 and 2.9 and we'll see if it is found appropriate next time.

Onto next Review

I've made necessary changes http://source.apidesign.org/hg/html~demo/rev/197472ca59d4 and uploaded my MineSweeper application for another review.

2nd Review

No complaint about the application this time. However comment 3.2 remained. However it turned out that it is a comment about metadata, e.g. need to be fixed via browser. Done that and re-submitted on Aug 21, 2014.

Personal tools
buy