-
Notifications
You must be signed in to change notification settings - Fork 193
Mac App Store Submission
You've put the hard work into creating the next great app for OSX, now it is time to reap the benefits. Some of the first steps will be to become familiar with the ecosystem and processes required for submitting an App to the MAS.
Note: with the recent changes in Xcode 4.4+ I recommend checking out the following
https://github.com/audiocommander/Iconset-Generator
Long story short, iconset is now required and you will need to enable entitlements+sandboxing and enable any necessary entitlements. I am using MacRuby latest (0.13) with Xcode 4.5 no problems. If your template goes missing after upgrade (now a feature), you need to run this command from the CHANGELOG after installing latest:
sudo /usr/local/bin/macruby_install_xcode_support
The Mac Developer program provides access to important documentation, and the ability to submit Apps to the MAS. Sign up before continuing in this guide. https://developer.apple.com/programs/mac/
iTunes Connect is the utility you will use to manage the entire submission, review, sales, reporting, and payments of your Apps. It will show you a step-by-step process of how to submit your App for review. Read the iTunes Developer guide here: https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf
Apple requires that all submissions are signed using a Developer Certificate. Before you can sign your app, you need to request a certificate and install it. Read up on the process here: https://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/OSXWorkflowGuide/CodeSigning/CodeSigning.html#//apple_ref/doc/uid/TP40011201-CH7-SW1
Now that you've completed the prep work, you're ready to start the submission process. This should be the starting point for all App submissions after your first successful submission. You need to register your App's Bundle Identifier here: https://developer.apple.com/certificates/index.action#bundle
Log into your iTunes Connect account at http://itunesconnect.apple.com. Navigate to Manage Applications > Add New App. You'll start the process of registering a name, SKU, and select the Bundle ID you created in Step 1. Follow the steps to provide information about your app, such as a description, screenshots, and price tier. Continue until you have a status of "Ready to Upload."
We'll be making some changes in the Project's Build Settings. Select the Project Navigator view in Xcode, then select your project at the top of the view. You'll then be able to select the Build Settings. I suggest using the "All" and "Combined" view filters.
Since MacRuby only runs on 64-bit versions of OS X, we need to build specifically for that architectures. Change the Debug and Release builds to 64-bit Intel. Change the Valid Architectures so that x86_64 is the only value, removing i386.
If you created your app with the Xcode template for MacRuby, you should have two build targets. One which has the same name as your project and Deployment. Deployment is only used when deploying your app to other systems, or the App Store. Deployment essentially builds your App, then executes macruby_deploy on the App bundle.
macruby_deploy --help
Usage: macruby_deploy [options] application-bundle
--compile Compile the bundle source code
--embed Embed MacRuby inside the bundle
--no-stdlib Do not embed the standard library
--stdlib [LIB] Embed only LIB from the standard library
--gem [GEM] Embed GEM and its dependencies
--bs Embed the system BridgeSupport files
--verbose Log all commands to standard out
--codesign [CERT] Sign the files with the specified certificate
-v, --version Display the version
Under the Deployment target's Info section, there is an arguments input field for macruby_deploy's arguments. Input the appropriate arguments for your app.
An example might be something like this:--compile --embed --gem httparty --gem json_pure --codesign "3rd Party Mac Developer Application: Daniel Westendorf"
. This example will compile your source into .rbo files (instead of .rb files, don't let anyone steal your code!), embed the MacRuby framework (required for MAS), include the httparty and json_pure gems, and codesign the application. Replace the certificate with the name of your certificate you created in step 3 of the preparations section. Your App must be codesigned.
Next to the Run and Stop buttons in Xcode, you can select your current build target. Select Development My Mac 64-bit. Now go to Build > Archive in the menu bar. This will build your App for distribution, then execute macruby_deploy on your app bundle. This can take some time.
After a few moments, your build will succeed, and the Organizer will open. Select your Deployment for your App, and click Distribute...
Select to Submit to the Mac App Store, then sign in with your iTunes Connect credentials. Click through the remaining steps, selecting the defaults. Xcode will then upload your application binary.
If your app successfully uploads to iTunes Connect, congratulations! After a few automatic verification steps that Apple does (checks version numbers, codesigning, others) your App will transition to "Waiting for Review". You should get email notifications at each step.
This is a straightforward process which can take a few days or a few weeks. Your app will transition into the "In Review" stage where the actual review process takes place. Your app may get rejected due to bugs, or violating the MAS ToS. You may have to make code modifications and go through the process of submitting your app binary again, or just modifying your description parameters. This is all handled through iTunes Connect, with email notifications.
Hopefully your app makes it through the review process, and hits the App Store. Congratulations, and good luck! Send an email to the MacRuby Dev list (macruby-devel@lists.macosforge.org) and tell us about your App, then watch your Sales numbers climb!