Mac App Store Submission
Clone this wiki locally
Submit your App to the Mac App Store
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
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:
Step 1: Enroll in the Mac Developer Program
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/
Step 2: Read the iTunes Connect Developer Guide
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
Step 3: Create a Apple Developer Certificate
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
Prepare for Upload
Step 1: Register your Mac App ID
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
Step 2: Add the App to your iTunes Connect account
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."
Prepare Your App for Submission
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.
Step 1: Architectures
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.
Step 2: Update the macruby_deploy switches
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.
Build and Submit your App
Step 1: Create the Archive
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.
Step 2: Deploy
After a few moments, your build will succeed, and the Organizer will open. Select your Deployment for your App, and click Distribute...
Step 3: Submit
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.
Step 4: Done!
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.
The Review Process
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 (email@example.com) and tell us about your App, then watch your Sales numbers climb!