Which programing languages can be used for publishing to the Mac App Store?

What are the programing language requirements for publishing to the mac app store? Obviously Obj-C is the main one, but can someone publish using something like C++? Or Java?


The rules for the Mac App store are converging towards that of the iOS App store. The iOS App store currently allows the use of almost any programming language (even Basic or Assembly), as long as everything required for that language (code, interpreter, runtime, libraries, etc.) is bundled with the app. For instance, many iPhone games have a built-in Lua interpreter or a C# runtime.

If a language used by an app requires any separately installed support other than that built into the Lion Mac OS distribution, the review guidelines say that app will be rejected. Cocoa and webkit (for Javascript) are currently built into the Mac OS X distribution.

So, if you want to use Java, you might be able to get away with including your own complete JVM and all needed runtime support libraries for Java in the app bundle.

BTW, XCode supports using C++ and Objective C++ code, as well as Objective C and its plain C subset. But you may have to use some Objective C APIs to make an application compliant with all the UI guidelines, even in a mostly C++ app.


This article from 2010 reveals some of the more explicit guidelines Apple publishes for what apps can't do or be made of if you want to sell them in the App Store. Of particular note that article says:

No Java?: Apps that use deprecated or optionally installed technologies (e.g. Java, Rosetta) will be rejected.

That is actually an interpretation of the App Store Review Guidelines that say: "apps that use deprecated or optionally installed technologies will be rejected." (reference for that quote that doesn't require an Apple Developer account). Which means most, if not all, Java is outlawed or on its way to being outlawed because the custom Java Apple produces is now deprecated on OS X. Going forward Java on OS X won't ship with the OS, it'll be a user-installed product that they download from...maybe Oracle I guess. We'll have to see.

No other languages are specifically listed as forbidden but with any other language other than Objective-C getting the UI requirements right would be really quite difficult. Apple is very concerned with quality and the look and feel of applications. So languages that produce non-standard UIs (i.e. don't follow the Apple UI Guidelines) are going to be more likely candidates for rejection.


According to this page: Examples of apps in the Mac App Store not made with objective-c/c/c++ ?

Briquette is made with ruby.