Bundling JRE with Mac App Store standalone including mxj?

    May 04 2014 | 3:19 am
    I had read some guidelines recently for preparing an app for the Mac App Store, and it explicitly stated no java (thus no mxj) allowed.
    However, looking around elsewhere, I saw indications that people have successfully gotten Java apps into the Mac App Store by bundling the JRE with their app, installing it if no JRE was already detected. Just curious what people's thoughts are - would it fly in the case of a Max-based standalone?
    My only other question is if anyone since this was last discussed (2011 IIRC) found any decent way of obfuscating internals of an mxf standalone file in order to protect the app from reverse engineering (the JSON textfile copy trick).
    While the app I am launching will likely be free, I very much wish to prevent access to the internals of my application. Surely there must be some way of doing this by now?
    Thanks for any and all help.

    • May 05 2014 | 4:16 pm
      I obfuscate my answer:
      "naskdnaksndlaskdnalsknd aslkdaslkdn123435325lksndknalsnasnln"
    • May 05 2014 | 7:01 pm
    • May 06 2014 | 6:31 am
      Lol Wendy I will work on decrypting that later.
      Thanks Mike, I assume it will be fine to use with Max 6 as well.
      Ok, I might be the first to be trying to submit an app that contains Java of anyone. I will let the forum know if I was successful or not in some time (hopefully before the end of the year). If successful, I will share a guide on how to package the JRE with the standalone etc.
      I'll keep checking in in case someone has some info but I am going to guess I am the first to try.
    • May 07 2014 | 4:43 pm
      I'm pretty sure that when your app starts up, if there's an mxj object in it, it will try to invoke Java at the OS level (whether there's a resident JRE on the machine or not), and that will be the trigger that let's Apple know that you're using Java, and what will get it banned. That said, I have not tried to submit a Java app myself to Apple, so would be curious nonetheless to hear what you find out. Would also appreciate links to where you found reports online of other platforms having success by bundling the JRE...
      Rather than building your entire app and then testing, why don't you build a very simple Hello World Java-containing Max app to the Store, and see if it makes it through?
    • May 08 2014 | 12:50 am
      What I would want to find out is why these Java apps would be allowed and not our mxj-containing Max standalones? And agreed, I don't want to go through all the trouble with my actual app and find out it's not allowed on a technicality. However, I am quite happy to distribute it outside of the App Store if need be, so I will certainly continue development regardless of what we find out on this issue.
    • May 08 2014 | 12:58 am
      Ah, here's one right from Oracle (I should clarify that the previous two are for OpenJDK bundling and JavaFX bundling): http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html#mac_app_store
      And this one is specific to JRE bundling (scroll up).
    • May 08 2014 | 2:51 pm
      That's very interesting, thanks for all those links. So this may be possible after all!
      One thing that I'm thinking you may need to do is to tell your app where to look for the bundled JRE - so you may need to provide a custom max.java.config.txt file?
      Please post what you find!!