How To Develop OS X Apps with MacRuby and Xcode 4.x
Apple did a wonderful thing recently; it does a lot of wonderful things but this is really great: Apple officially threw its support to Ruby with its own version of the language: MacRuby. The framework is included in the new release of XCode 4, which is available once you upgrade to OS X Lion. This is the second attempt by Apple to create its own version of the language that would run on their Objective-C runtime having first attempted to bridge (interface) the two languages. They had named that version: RubyCocoa. That version was slow and had many design flaws.
This new version is fast and interfaces directly with the Objective-C engine. It takes full advantage of the Objective-C API and garbage collector. The down side, it is doesn’t run on IOS devices.Yet. The other down side is that Apple is introducing the language as a private framework. This means that you have to include the framework in your package, which greatly increase the size of the package when you deploy your app locally; your computer or network, or through the Apple App Store.
Unlike, Objective-C, there are a couple of tweaks that must be performed to get the MacRuby App running.
1- Remove the I386 from the Valid Architectures
2- Add a Build Target to the Deployment Scheme
To help you get going I will walk you through the process; I will create a new app: Rubies.
Create a new Ruby app
Launch XCode 4 (you can upgrade your environment once you upgrade to Lion OS X). Select to create a new XCode Project. Next select the OS X node and select Applications to view the list of templates for Applications, select MacRuby Application framework and click the “Next” button.
In the next screen, provide a Name for the app and select the Category (this is for the App Store). Also enter a Company identifier, again for the App Store. This is similar to a Package in Java or a Namespace in the Microsoft .Net framework. The App name and Company are combined to create the Bundle Identifier.
In the next screen, you can add your project to a local Git repository, or deselect that option and click the “Create” button to create the project.
Add an app icon
Once the basic app is created, you can add an App icon. Right-click on the App Icon placeholder and choose “Select File”.
Change the Valid Architecture
To make your Ruby app compile and run successfully, you to remove the I386 architecture from the Valid Architectures. Select the your App name from the Project node and select “Build Settings”.
Double click on the Valid Architecture value (top level to modify both the Debug and Release architectures). Select “I386” and click the remove button ( a Minus symbol) on the bottom left of the dialog box. Click “Done” to save your change and close the dialog box. The Valid Architectures should only indicate the x86_64 architecture since OS X only supports 64 bit processing.
Add a deployment Plan
The next configuration that needs to be done is to add a Deployment Plan to the project. Select the project scheme by clicking on the Scheme selector button on the toolbar (next to the run & stop buttons). Select “Edit Scheme”. Next select the “Build” node in the scheme configuration panel and click the “+” symbol. Once the next dialog box opens, select the Deployment scheme if its not in your configuration or select your project scheme if it is not in your project. Both are required.
Under the “Run” node in the Scheme editor, make sure that your main executable is selected for all Schemes. In the following example, there are two schemes, rubies and Deployment. You need to select the executable in the Executable field in both Schemes. Select each scheme from the Scheme selector and select the executable in the Executable field.
Click the “Ok” button to close the dialog
Click the Run button to test your app before moving on to the next step.
Package your App
The last bit of work is to package your app for deployment to your system (Application) or the App Store (Package). You need a Developer ID from Apple to actually submit to their Store.
Select the Archiving menu option icon. Next select your project and click on Share. In the next screen select “Application” and save your app wherever you want on your system. Finally, navigate to the location with Finder and double click on your app to launch it.