<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>untoldentertainment.com &#187; AIR</title>
	<atom:link href="http://www.untoldentertainment.com/blog/tag/air/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.untoldentertainment.com/blog</link>
	<description>We Make Flash Games</description>
	<lastBuildDate>Wed, 01 Feb 2012 15:18:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<copyright>Copyright &#xA9; untoldentertainment.com 2011 </copyright>
	<managingEditor>ryan@untoldentertainment.com (untoldentertainment.com)</managingEditor>
	<webMaster>ryan@untoldentertainment.com (untoldentertainment.com)</webMaster>
	<image>
		<url>http://www.untoldentertainment.com/blog/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>untoldentertainment.com</title>
		<link>http://www.untoldentertainment.com/blog</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>We Make Flash Games</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>untoldentertainment.com</itunes:author>
	<itunes:owner>
		<itunes:name>untoldentertainment.com</itunes:name>
		<itunes:email>ryan@untoldentertainment.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://www.untoldentertainment.com/blog/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>Flash to iOS: A Step-by-Step Tutorial (Part 5)</title>
		<link>http://www.untoldentertainment.com/blog/2011/12/21/flash-to-ios-a-step-by-step-tutorial-part-5/</link>
		<comments>http://www.untoldentertainment.com/blog/2011/12/21/flash-to-ios-a-step-by-step-tutorial-part-5/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 16:54:38 +0000</pubDate>
		<dc:creator>Sina Kashanizadeh</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Awesomazing]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://www.untoldentertainment.com/blog/?p=4272</guid>
		<description><![CDATA[This is the fifth part of our tutorial series by Intern Sina on creating an AIR application for free on a PC using FlashDevelop, and deploying it as a native app on an iOS device like the Apple iPad, iPhone or iPod Touch. Jump to other parts in the series: Part 1 &#8211; Sign up [...]]]></description>
			<content:encoded><![CDATA[<p><center></p>
<div class="displayed">
<img src="http://www.untoldentertainment.com/blog/img/2011_12_07/iPadAIR.png" alt="Flash to iOS: A Step-by-Step Tutorial" />
</div>
<p></center></p>
<p>This is the fifth part of our tutorial series by Intern Sina on creating an AIR application for free on a PC using FlashDevelop, and deploying it as a native app on an iOS device like the Apple iPad, iPhone or iPod Touch.</p>
<p>Jump to other parts in the series:</p>
<ul>
<li><a href="http://www.untoldentertainment.com/blog/2011/11/23/flash-to-ios-a-step-by-step-tutorial-part-1/" title="Flash to iOS: A Step-by-Step Tutorial (Part 1)"><b>Part 1</b> &#8211; Sign up for an Apple iOS Developer Account</a>
<li><a href="http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/" title="Flash to iOS: A Step-by-Step Tutorial (Part 2)"><b>Part 2</b> &#8211; Obtain your Signing Certificate &#038; Mobile Provisioning Profile, and create your App ID</a>
<li><a href="http://www.untoldentertainment.com/blog/2011/12/07/flash-to-ios-a-step-by-step-tutorial-part-3-2/" title="Flash to iOS: A Step-by-Step Tutorial (Part 3)"><b>Part 3</b> &#8211; Use FlashDevelop to build your mobile AIR app</a>
<li><a href="http://www.untoldentertainment.com/blog/2011/12/14/flash-to-ios-a-step-by-step-tutorial-part-4/" title="Flash to iOS: A Step-by-Step Tutorial (Part 4)"><b>Part 4</b> &#8211; Modify your project settings and test your app on an Apple device</a>
</ul>
<h2>Distribution Certificate</h2>
<p>Now that you&#8217;ve tested your app and it&#8217;s to your liking, guess you want to put it up on the App Store? Never fear, my friend! I will now show you how to get your app uploaded on the App Store so the whole world can ignore it and buy <b>Angry Birds</b> instead.</p>
<p>This process of distribution is a bittersweet one. It&#8217;s sweet because it&#8217;s <em>extremely similar</em> to the development process that you just went through, so you should be familiar with the convoluted certificates and hoops you have to jump through at Apple&#8217;s pleasure. It&#8217;s bitter because it&#8217;s <em>extremely similar</em> to the development process that you just went through.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/groundhogDay.jpg" alt="Groundhog Day" /></p>
<p>Something about this seems awfully familiar &#8230;
</p></div>
<p>Enough talk. Let’s get cracking!</p>
<h2>Generate a Signing Certificate Request</h2>
<p>Remember that OpenSSL program that you installed in <a href="http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/" title="Flash to iOS: A Step-by-Step Guide Part 2 by Untold Entertainment">Part 2 of this tutorial</a>? You have to open that bad boy up again to create another <b>Certificate Signing Request</b>. Now, it <em>is</em> possible to just use your old Signing Certificate &#8211; however, just to be super clear and to avoid any confusion or difficulty, we&#8217;re going to create another one.</p>
<p><b>Note:</b> We&#8217;ll use this new Signing Certificate Request to get a <b>Distribution Certificate</b> rather than a <b>Development Certificate</b>.</p>
<ol>
<li>Open a command prompt window. You can do this by clicking the Windows <b>Start</b> button and typing in <b>cmd</b> in the search field. Alternately, you can also hold the Windows key on your keyboard and hit the &#8220;R&#8221; key (for &#8220;Run&#8221;), then type <b>cmd</b> and hit Enter.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/cmd.jpg" alt="Windows CLI" /></p>
</div>
<li>Once you are in the command prompt, navigate to your Open SSL <b>bin</b> folder. Depending on where you installed it, you will have to navigate to a different path than in this example. (i hope you installed Open SSL in a location that you can remember!)  Check <a href="http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/" title="Flash to iOS: A Step-by-Step Guide Part 2 by Untold Entertainment">Part 2</a> if you need a refresher on Windows CLI (Command Line Interpreter) commands.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/cd.jpg" alt="Open SSL folder" /></p>
</div>
<li>Punch this command into the CLI and hit the ENTER key when you’re finished:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">openssl genrsa -out mykey.key 2048</pre></div></div>

<p>You should see this response:</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/response.jpg" alt="Response" /></p>
</div>
<li>Next, type (or highlight the line, right-click, choose &#8220;Copy&#8221;, and right-click/&#8221;Paste&#8221; in the CLI):

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest  -subj &quot;/emailAddress=yourAddress<span style="color: #33cc33;">@</span>example.com, CN=John Doe, C=US&quot;</pre></div></div>

<p>Now, before you hit ENTER you’ll want to edit a couple of things. First, replace &#8220;John Doe&#8221; with your own name or company name. Then replace the &#8220;yourAddress@example.com&#8221; email with your own email. Press ENTER.</p>
<p>You should get a message similar to this:</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/response2.jpg" alt="Response 2" /></p>
</div>
<p>You just generated the <b>Signing Certificate Request file</b> that you&#8217;ll use to ask Apple for your <b>Distribution Signing Certificate</b>. The Signing Certificate Request file is located in the <b>bin</b> folder of your Open SSL install. It has a <b>.certSigningRequest</b> file extension and should look like this:</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/signingRequest.jpg" alt="Signing Certificate" /></p>
</div>
</ol>
<h2>Obtain a Signing Certificate for Distribution</h2>
<p>You have to upload your <b>Signing Certificate Request file</b> to the <b>Apple Provisioning Portal</b> to get your <b>Distribution Signing Certificate</b>.  Onward.</p>
<p><b>Note:</b> There have been instances where this upload does not work with Google Chrome. Just to be safe, use another browser like Firefox.</p>
<ol>
<li>Navigate to the <a href="http://developer.apple.com/devcenter/ios/index.action" title="Apple iOS Provisioning Portal">Apple iOS Provisioning Portal</a> within the Dev Center.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/portal.jpg" alt="Apple Provisioning Portal" /></p>
</div>
<li>Log in with your developer account and click on <b>Certificates</b>.
<li>Click on the <b>Distribution</b> tab.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/distribution.jpg" alt="Apple Provisioning Portal" /></p>
</div>
<p><b>Note:</b> In our previous tutorials, you requested a certificate from the <b>Development</b> tab.  An app signed with a Development certificate cannot be successfully submitted to the Apple App Store.</p>
<p>If you have an old <b>Distribution Certificate</b> because you&#8217;ve made a prior app, and you&#8217;d still like to follow along, you can go ahead and <b>Revoke</b> it. Revoking the Certificate will not affect your apps that are already on the App Store, because the Certificate is primarily used during the upload process so that Apple can identify you.</p>
<p><b>Note:</b> I recommend revoking an existing Certificate because Apple seems to issue only one Certificate per Team Agent. You must revoke any existing Certificate to be able to request another. Why is it set up like this? I have no idea.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/revoke.jpg" alt="Revoke your Apple Signing Certificate" /></p>
</div>
<li>If you don&#8217;t have a pre-existing <b>Distribution Signing Certificate</b>, you can just go ahead and click <b>Request Certificate</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/requestCertificate.jpg" alt="Request your Apple Signing Certificate" /></p>
</div>
<p>On the next screen, you will upload the <b>Signing Certificate Request file</b> that you generated in the previous section.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/request.jpg" alt="Request" /></p>
</div>
<li>Click the <b>Browse</b> button and navigate to the OpenSSL <b>bin</b> folder.
<li>Select the <b>Signing Certificate Request file</b> and click <b>Submit</b>.  When you are finished, you&#8217;ll see your <b>Distribution Signing Certificate</b> ready to download from the web page.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/yourCertificate.jpg" alt="Your Apple Signing Certificate" /></p>
</div>
</ol>
<p>Don&#8217;t download your <b>Distribution Certificate</b> quite yet. You still need to create an <b>App ID</b> and a <b>Mobile Provisioning Profile</b>.</p>
<h2>Create a New App ID</h2>
<p>When deciding what you want your App ID to be, you have two choices:</p>
<ul>
<li>Create an entirely new App ID
<li>Use the Existing App ID that you create in <a href="http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/" title="Flash to iOS: A Step-by-Step Tutorial by Untold Entertainment">Part 2</a>
</ul>
<p>If you want to use your existing App ID, then just skip to the next section. If for some reason you don’t like the name of your App ID, go ahead and make a new App ID, following the steps outlined in <a href="http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/" title="Flash to iOS: A Step-by-Step Tutorial Part 2 by Untold Entertainment">Part 2</a>.</p>
<h2>Create a Mobile Provisioning Profile for Distribution</h2>
<p>Now that you have an App ID, you can create your <b>Mobile Provisioning Profile</b>.</p>
<ol>
<li> Within the Provisioning Portal website, click <b>Provisioning</b> in the sidebar.
<li>Click the <b>Distribution</b> tab.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/newProfile.jpg" alt="New Provisioning Profile" /></p>
</div>
<p>In previous tutorials, you created a <b>Development</b> profile for testing.  You won&#8217;t be able to upload your app to the Apple App Store unless you create a <b>Distribution</b> profile, so make sure you select the correct tab.</p>
<p>You can either create a new <b>Provisioning Profile</b>, or modify an existing one.  Modifying an existing profile if you want to switch between <b>App Store</b> and <b>Ad Hoc</b> distribution. If you&#8217;ve never created a Distribution profile, read on. Instructions for modifying a profile are in the section following.</p>
<li>Click on <b>New Profile</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/newProfileButton.jpg" alt="New Provisioning Profile Button" /></p>
</div>
<p><b>Note:</b> You&#8217;ll only see this option if you are the fee-paying Team Admin.</p>
<li>In the next section, you&#8217;ll have to fill out a bunch of options. The first option is the <b>Distribution Method</b>. As you can see, you can choose between <b>App Store</b> and <b>Ad Hoc</b>.
<ul>
<li>Choose App Store if you are completely satisfied with your app and you want to submit it to Apple for review. If all goes well, then your app will be released whenever Apple deems it worthy.
<li>The Ad Hoc option can be thought of as a closed beta for your app. When you choose Ad Hoc, you are able to release your app to a maximum of 100 people, and only they will have access to it. Your App will NOT appear in the public App Store if you choose Ad Hoc.
</ul>
<p><b>Note:</b> Notice when you choose <b>App Store</b>, the &#8220;Devices&#8221; option is greyed out. When you choose <b>Ad Hoc</b>, it allows you to choose a number of devices that you have registered. The <b>App Store option</b> releases your app on the public App Store, so it doesn&#8217;t make sense to target specific devices.</p>
<li>Your <b>Profile Name</b> is the name that you want for your <b>Provisioning Profile</b>. The <b>Distribution Certificate</b> that you created should be visible here.
<li>Finally, you have to choose which <b>App ID</b> with which you want to register your <b>Provisioning Profile</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/profileOptions.jpg" alt="Profile Options" /></p>
</div>
<li>Click <b>Submit</b>.
<li>You should ee a list of the <b>Provisioning Profiles</b> that you&#8217;ve created. Click <b>download</b> on the <b>Provisioning Profile</b> that you just created, and save it to you computer.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/saveIt.jpg" alt="Save Your Provisioning Profile" /></p>
</div>
</ol>
<h2>Modify your Provisioning Profile</h2>
<p><b>Note:</b> If you&#8217;re not modifying an existing <b>Provisioning Profile</b> (say, from <b>Ad Hoc</b> to <b>App Store</b>), skip over this section.</p>
<ol>
<li>Within the <b>Provisioning Portal</b> website, click <b>Provisioning</b> in the sidebar.
<li>Click the <b>Distribution</b> tab.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/newProfile.jpg" alt="New Provisioning Profile" /></p>
</div>
<li>Click <b>Modify</b> on the <b>Provisioning Profile</b> that you want to reuse.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/modifyProfile.jpg" alt="Modify Provisioning Profile" /></p>
</div>
<li>Switch to either <b>Ad Hoc</b> or <b>App Store</b>. The distinction between these two options is explained in the preceding section.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/edit.jpg" alt="Edit Provisioning Profile" /></p>
</div>
<li>Click <b>Submit</b>.
<li>You should see a list of the <b>Provisioning Profiles</b> that you&#8217;ve created. Click <b>download</b> on the <b>Provisioning Profile</b> that you just modified, and save it to your computer.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/saveIt.jpg" alt="Save Your Provisioning Profile" /></p>
</div>
</ol>
<h2>Download your Distribution Certificate</h2>
<p>You just need to download the <b>Distribution Signing Certificate</b> that you created at the top of this tutorial,  and then you are ready to bundle your <b>.ipa</b> file to submit to the App Store.</p>
<ol>
<li>Click on the <b>Certificates</b> section in the sidebar.
<li>Click the <b>Distribution</b> tab.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/distribution.jpg" alt="Apple Provisioning Portal" /></p>
</div>
<li>You&#8217;ll see that your <b>Distribution Signing Certificate</b> is ready to download. You can also see that it contains the <b>Distribution Provisioning Profile</b> that you just made.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/ready.jpg" alt="Your Certificate is Ready" /></p>
</div>
</ol>
<li>Click download and save the file to your computer. Just to make things easier, you can save that certificate in the Open SSL <b>bin</b> folder, where your <b>Certificate Signing Request</b> file is sitting.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/hooray.jpg" alt="Hooray!" /></p>
</div>
</ol>
<p><b>Note:</b> Make sure not to get confused between your <em>Development</em> Certificate and Profile, and your <em>Distribution</em> Certificate and Profile.  You won&#8217;t be able to upload your app to the App Store if you accidentally use the Distribution set of certs in these next steps.</p>
<h2>Convert the Signing Certificate to a .p12 File</h2>
<p>You&#8217;ll have to perform the .p12 conversion on your Certificate again, as you did in an earlier tutorial.  Here are the steps:</p>
<ol>
<li>Open up your command prompt.
<li>Navigate to your Open SSL bin folder.
<li>Copy and paste this command:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">openssl x509 -in distribution_identity.cer -inform DER -out distribution_identity.pem -outform PEM</pre></div></div>

<p>After you enter that command, you&#8217;ll see a .pem file show up in your OpenSSL <b>bin</b> folder.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/pem.jpg" alt=".pem file" /></p>
</div>
<li>Copy and paste this command in the CLI:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">openssl pkcs12 -export -inkey mykey.key -in distribution_identity.pem -out iphone_dev.p12</pre></div></div>

<p><b>Note:</b> These are the exact same commands that you used for our Development Certificate in an earlier tutorial, except that the file name has been changed from &#8220;development&#8221; to &#8220;distribution&#8221;.</p>
<li>After you punch in the command, enter a password and then verify that password. Make sure the password is something that you will remember. (Save it in a .txt file! – Ed.)
<p><b>Note:</b> Remember that you may get an error mentioning a &#8220;random state&#8221;. Just type in the command set <b>RANDFILE=.rnd</b> and it should fix the problem for you.</p>
<li>Navigate to the <b>bin</b> folder in your Open SSL directory and you should see your <b>.p12</b> file. Hooray!
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_20/p12.jpg" alt=".p12 file" /></p>
</div>
</ol>
<h2>Hello, Planet</h2>
<p>As we mentioned off the top, much of this is familiar territory.  With all of your Distribution certs sorted out, you&#8217;re ready to bundle up your final <b>.ipa</b> file and foist it onto an unsuspecting public.  In the next tutorial, you&#8217;ll follow familiar instructions to bind your certs to your <b>.ipa</b>, and experience that magical moment of uploading your app for Apple&#8217;s approval (followed shortly by that equally magical moment of getting your app rejected cuz BEWBZ.)  Let&#8217;s do it!</p>
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2011%2F12%2F21%2Fflash-to-ios-a-step-by-step-tutorial-part-5%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2011%2F12%2F21%2Fflash-to-ios-a-step-by-step-tutorial-part-5%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2011/12/21/flash-to-ios-a-step-by-step-tutorial-part-5/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=4272&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2011/12/21/flash-to-ios-a-step-by-step-tutorial-part-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash to iOS: A Step-by-Step Tutorial (Part 4)</title>
		<link>http://www.untoldentertainment.com/blog/2011/12/14/flash-to-ios-a-step-by-step-tutorial-part-4/</link>
		<comments>http://www.untoldentertainment.com/blog/2011/12/14/flash-to-ios-a-step-by-step-tutorial-part-4/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 21:43:56 +0000</pubDate>
		<dc:creator>Sina Kashanizadeh</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Awesomazing]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://www.untoldentertainment.com/blog/?p=4171</guid>
		<description><![CDATA[This is the fourth part of our tutorial series by Intern Sina on creating an AIR application for free on a PC using FlashDevelop, and deploying it as a native app on an iOS device like the Apple iPad, iPhone or iPod Touch. Jump to other parts in the series: Part 1 &#8211; Sign up [...]]]></description>
			<content:encoded><![CDATA[<p><center></p>
<div class="displayed">
<img src="http://www.untoldentertainment.com/blog/img/2011_12_07/iPadAIR.png" alt="Flash to iOS: A Step-by-Step Tutorial" />
</div>
<p></center></p>
<p>This is the fourth part of our tutorial series by Intern Sina on creating an AIR application for free on a PC using FlashDevelop, and deploying it as a native app on an iOS device like the Apple iPad, iPhone or iPod Touch.</p>
<p>Jump to other parts in the series:</p>
<ul>
<li><a href="http://www.untoldentertainment.com/blog/2011/11/23/flash-to-ios-a-step-by-step-tutorial-part-1/" title="Flash to iOS: A Step-by-Step Tutorial (Part 1)"><b>Part 1</b> &#8211; Sign up for an Apple iOS Developer Account</a>
<li><a href="http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/" title="Flash to iOS: A Step-by-Step Tutorial (Part 2)"><b>Part 2</b> &#8211; Obtain your Signing Certificate &#038; Mobile Provisioning Profile, and create your App ID</a>
<li><a href="http://www.untoldentertainment.com/blog/2011/12/07/flash-to-ios-a-step-by-step-tutorial-part-3-2/" title="Flash to iOS: A Step-by-Step Tutorial (Part 3)"><b>Part 3</b> -Use FlashDevelop to build your mobile AIR app</a>
</ul>
<p>In this section of the tutorial, the rubber meets the road.  You&#8217;ll make all the finicky adjustments to FlashDevelop and the AIR bundling files to get your Hello Planet app up and running on your testing device.</p>
<h2>Point FlashDevelop to the Merged SDK Folder</h2>
<p>Now that your (cr)app is successfully up and running, you have to make a few tweaks and adjustments to FlashDevelop. You&#8217;ll start by telling FlashDevelop all about that merged SDK folder you created in Part 3. </p>
<ol>
<li>In the Project panel on the right, you&#8217;ll see a file called AIR_iOS_readme.txt. Double click that file to open it.
<p>This txt file lists a number of settings needed to get your ipa file working.  The ipa file is the Holy Grail- the native app file that you&#8217;ll send to your testing device to see everything working properly. A window pops up with a bunch of options.</p>
<li>Click the Project Properties button at the top of the Properties Panel (alternately, you can use the menus to navigate to Project>Properties).
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/projectProperties.jpg" alt="FlashDevelop Project Properties"></p>
</div>
<li>Change the version of your AIR SDK from 2.7 to <b>3.0</b> because (at the time of this writing), that is the latest version.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/projectPropertiesOptions.jpg" alt="FlashDevelop Project Properties Options"></p>
</div>
<li>Click on the SDK tab, and click <b>Manage</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/manage.jpg" alt="FlashDevelop Project Properties Options - Manage"></p>
</div>
<li>On the next screen you will see list of installed Flex SDKs. Click the ellipsis (&#8230;) button at the end of that line.  An <b>InstalledSDK Collection Editor</b> window pops up.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/ellipsis.jpg" alt="FlashDevelop Project Properties Options - Flex SDK Location"></p>
</div>
<li>You&#8217;re going to point FlashDevelop to the location of our recently-downloaded Flex SDK (the same folder that contains both the Flex SDK and AIR SDK  that you created earlier in this tutorial).  First click the <b>Add</b> button, and then click on the <b>Path</b> line to get another ellipsis. Click on THAT ellipsis to browse your computer.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/add.jpg" alt="Add"></p>
</div>
<li>Once you have clicked the ellipsis button, a Windows File Browser appears. Navigate to the merged SDK directory. Select that folder and click <b>OK</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/navigate.jpg" alt="Navigate to your merged SDK folder"></p>
</div>
<li>Click <b>OK</b> again to exit the <b>InstalledSDK Collection Editor</b> window.
<li>Click <b>Close</b>.
<li>In the drop-down menu, you should see the Default option. Click on the drop-down list and choose the SDK location you just told FlashDevelop about.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/dropDown.jpg" alt="Choose your Merged SDK profile from the drop-down menu."></p>
</div>
<li>Click <b>Apply</b>.
<li>Click <b>OK</b>. Voila! Your SDK is now setup for your FlashDevelop Project.
<p>Let’s just test it out quickly to see if it works. The code you pasted in the previous tutorial prints out the words &#8220;Hello Planet&#8221; within your app. Well, I&#8217;m going to change mine to say &#8220;Sina is Cool&#8221;, just because I can, and also because I AM COOL. (You may be tempted to replace &#8220;Sina&#8221; with your own name.  Please don&#8217;t, because uh &#8230; your code won&#8217;t work.)</p>
<p>Your resulting app should look like this:</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/sinaIsCool.jpg" alt="Breaking: Sina is cool."></p>
</div>
<p>A beautiful sight, isn&#8217;t it?</p>
<p>(At this point, Sina actually is pretty damned cool. &#8211; Ed.)</p>
</ol>
<h2>Delete the Extra Icons Folder</h2>
<p>Now you have FlashDevelop set up to create mobile-formatted AIR apps. Your app compiles, and you have your <b>Mobile Provisioning Profile</b> and your <b>.p12 Signing Certificate</b> waiting in the wings. All you need to do is combine all these amazing files together to create the Holy Grail .ipa file.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/holyGrail.jpg" alt="The .ipa file is the Holy Grail of this tutorial series"></p>
<p>Ah &#8211; this is truly the .ipa of a FlashDeveloper.
</p></div>
<p>An <b>.ipa</b> file is like the program file &#8211; the Windows executable (.exe) &#8211; that you need to test your iPhone/iPad App on a device, and ultimately upload it to the Apple App Store.</p>
<p>The creators of FlashDevelop 4 made a minor error when they created the Mobile App template: the template generates a duplicate <b>icons</b> folder that will cause a conflict when you try to bundle your <b>.ipa</b> file. You need to get rid of this extra folder to make sure your .ipa file to builds properly. </p>
<ol>
<li>Look in the right sidebar that lists your files and folders. You&#8217;ll see a folder called <b>bin</b>.  (This is one of the folders that FlashDevelop created for you automatically when you created your project.)
<li>Click on the little plus sign beside the <b>bin</b> folder to expand it. You will see a folder called <b>icons</b> tucked inside. Right-click the <b>icons</b> folder and click <b>Delete</b>. Problem solved.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/delete.jpg" alt="Delete the icons folder to avoid a conflict later"></p>
</div>
</ol>
<h2>Integrate Your Cert Files</h2>
</ol>
<li>Copy your <b>Mobile Provisioning Profile</b> and your <b>.p12 Signing Certificate</b> into the <b>certs</b> folder of your project. If you&#8217;ve been following along with this tutorial from the beginning, you probably saved these two files in the <b>bin</b> folder of your OpenSSL install.
<p>Once the files are in the right place, they should show up in your Project sidebar:</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/certs.jpg" alt="You put yer WEED in there."></p>
</div>
<p>To create the <b>.ipa</b>, you have to edit a couple of lines in a <b>batch file</b> so that the app compiles properly. Don’t be scared: a batch file (.bat) is simply a text file that runs a script when you double-click it in Windows. You can open up a batch file by using a text editor of any kind.  Since you&#8217;ve already got FlashDevelop open, it makes a lot of sense to use it to edit the batch files.</p>
<p>In the following screenshot, I&#8217;ve opened up the ReadMe file that describes the iOS compilation steps. Step 5 talks about editing a batch file. Take a read if you&#8217;re nervous.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/readme.jpg" alt="iOS compilation readme"></p>
</div>
<li>In the sidebar, find the <b>bat</b> folder and expand it.
<li>Double-click the <b>SetupApplication.bat</b> file. The file should open in FlashDevelop.
<li>In the batch file, you should see some green text that says <b>ios packaging</b>, and a bunch of <b>set</b> options beneath it. This is where you have to add or adjust some text. In the IOS_DEV_CERT_FILE line, type the path to your .p12 <b>Signing Certificate</b> file (the one you just copied into the <b>certs</b> folder). You only have to use a <em>relative path</em> (one that describes where the file is in relation to the compilation target), so just copy what I have and you should be fine:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">cert\iphone_dev.p12</pre></div></div>

<li>In the IOS_DEV_CERT_PASS line, you have to enter password that you set when you made your <b>Signing Certificate</b>. (Don&#8217;t come crying to me if you don&#8217;t remember it &#8211; i told you to write it down &#8211; Ed.)
<li>In the IOS_PROVISION line, type the name of your <b>Mobile Provisioning Profile</b>.
<p>All in all your SetupApplication.bat should look like this:</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/setupApplication.jpg" alt="SetupApplication.bat"></p>
</div>
<p><b>Note:</b> Make sure you have the path properly setup as well as the same exact filename. If you have any sort of typo, it&#8217;s not going to work.
</ol>
<h2>Get Your Ducks in a Row</h2>
<p>You&#8217;re almost there! All you have to do is edit the <b>SetupSDK.bat</b> file.</p>
<ol>
<li>Double-click the <b>SetupSDK.bat</b> file to open it in FlashDevelop.
<li>At the top of the file, you&#8217;ll see a line that says <b>path to Flex SDK</b> in green. Right under that line is the path to the SDK. However, it&#8217;s not pointing to the merged SDK folder that we created earlier. Replace the default path with the path to your merged SDK folder. It might look similar to this:
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/setupSDK.jpg" alt="SetupSDK.bat"></p>
</div>
<p><b>Note:</b> Remember to save often!</p>
<li>Open the <b>application.xml</b> file. This xml file is the descriptor file for your application. You have to double-check to ensure everything in there is correct. Everything from your App name to the version of your App is located in this file.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/applicationXML.jpg" alt="Application.xml"></p>
</div>
<li>Change the version number at the end of the <b>xmlns</b> parameter of the root <b>application</b> node to the version of AIR you&#8217;re running. In this case (and at the time of this writing), it&#8217;s <b>3.0</b>.
<li>In the <b>id</b> node, enter the package name that you created for your <b>Mobile Provisioning Profile</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/applicationXMLChanges.jpg" alt="Application.xml changes"></p>
</div>
<p>If you don’t remember what your Bundle ID was, go to the Provisioning Portal on the <a href="http://developer.apple.com" title="Apple Developer Site">iOS developer website</a> and click on <b>Provisioning</b>.</p>
</ol>
<h2>Compile Time</h2>
<p>After all that, you&#8217;re finally ready to compile your <b>.ipa</b> file to test on an iOS device.</p>
<ol>
<li>In the sidebar, right-click the <b>PackageApp.bat</b> file and select <b>Execute</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/execute.jpg" alt="Execute!"></p>
</div>
<li>You&#8217;ll see a bunch of options. Since this is only a test, you can pick the <b>fast test</b> option. This option will quickly create an <b>.ipa</b> file for you to throw onto your iWhatever. Once you choose <b>fast test</b>, sit back and relax.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/choices.jpg" alt="Choices"></p>
</div>
<li>Look in the <b>dist</b> folder in the sidebar. You now have an <b>.ipa</b> file!
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/success.jpg" alt="Success!"></p>
</div>
</ol>
<h2>Test Your New App</h2>
<p>Take a moment and soak in what you&#8217;ve accomplished. You&#8217;re in the final steps of your epic journey of iEnlightenment. All you have to do now is load the hard-fought <b>.ipa</b> file up on your iWhatever.</p>
<p>I made a copy of my <b>Mobile Provisioning Profile</b> and my <b>.ipa</b> file and put them in a separate folder. I suggest you do the same as a backup measure &#8230; better safe than sorry.  Now let&#8217;s get that sucker onto your device.</p>
<ol>
<li>Plug in your iPhone/iPad/iPod Touch/iEtCetera and let it sync in iTunes.
<li>After it&#8217;s synced, go to <b>Library -> Apps</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/iTunes.jpg" alt="iTunes"></p>
</div>
<li>To add your <b>Mobile Provisioning Profile</b>, click and drag it from your folder into the <b>iTunes Library</b>.
<li>Follow the same process to add your <b>.ipa</b> file.
<p><b>Note:</b> You have to add your <b>Mobile Provisioning Profile</b> before you add your <b>.ipa</b> file! If you add these files in the wrong order, you may get errors!</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/dragAndDrop.jpg" alt="Drag and drop your files into iTunes"></p>
</div>
<p>After dragging your <b>.ipa</b> file into iTunes, you&#8217;ll see a generic App icon that FlashDevelop/AIR generated for you.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/genericIcon.jpg" alt="Generic Apple App Icon"></p>
</div>
<li>In the left sidebar, click on <b>Devices -> Your iPad/iPod/iPhone</b>.
<li>Click on the little <b>Apps</b> button at the top of iTunes. You&#8217;ll see a screen that displays all your Apps. Within that screen, you should be able to find your App (you may have to scroll around a little to find it).
<li>Click the <b>Apply</b> button to transfer everything to your device.
<p>iTunes will go through the syncing process, and will add your App to your device. You can click sync a few more times just to make sure everything is good &#8211; iTunes doesn&#8217;t always behave perfectly on a PC.</p>
<p><b>Note:</b> If you get an error saying that the App failed to install, your <b>Bundle ID</b> or something within your <b>Application.xml</b> may be wrong. Double-check everything! There is no harm in deleting your App and from iTunes and transferring it again. You can also overwrite your <b>Mobile Provision Profile</b> with a corrected one.</p>
<p><b>DOUBLE NOTE:</b> If you change anything in your project, you must compile your <b>.ipa</b> file again, because it contains all the new information necessary for iTunes to run your App.</p>
<li>Fire up your iPad/iPhone and BAM!
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/beautiful.jpg" alt="AIR on iOS"></p>
</div>
<p>It’s so &#8230; beautiful. *sniff*
</ol>
<h2>To the App Store &#8230; and Beyond!</h2>
<p>In this section of the tutorial, you:</p>
<ul>
<li>Pointed FlashDevelop to your merged AIR/Flex SDK folder
<li>Corrected an error with the Mobile AIR template by deleting an extraneous icons folder
<li>Copied your <b>Mobile Provisioning Profile</b> and your <b>.p12 Signing Certificate</b> into your project and pointed FlashDevelop to them
<li>Pointed the SetupSDK.bat file to the merged SDK folder
<li>Modified the application.xml descriptor file to match your project settings
<li>Compiled your project and created an <b>.ipa</b> file
<li>Copied your <b>.ipa</b> file and <b>Mobile Provisioning Profile</b> into iTunes
<li>Synced your app and ran it on your testing device!
</ul>
<p>With your project set up, you can continue developing your application until you have an amazing <em>thing</em> that you&#8217;re ready to foist on the app-buying public. There are still a few more things you need to know to deploy your app to the live iTunes store.  What about that generic AIR icon?  Wouldn&#8217;t you like to see something nicer in its place?  And how do you get your <b>.ipa</b> file in front of the app-approvers at Apple to get it to show up in iTunes?  And are we finished with certificates and profiles, or is there more to do?</p>
<p>Short answer? <em>There&#8217;s more to do.</em>
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2011%2F12%2F14%2Fflash-to-ios-a-step-by-step-tutorial-part-4%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2011%2F12%2F14%2Fflash-to-ios-a-step-by-step-tutorial-part-4%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2011/12/14/flash-to-ios-a-step-by-step-tutorial-part-4/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=4171&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2011/12/14/flash-to-ios-a-step-by-step-tutorial-part-4/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flash to iOS: A Step-by-Step Tutorial (Part 3)</title>
		<link>http://www.untoldentertainment.com/blog/2011/12/07/flash-to-ios-a-step-by-step-tutorial-part-3-2/</link>
		<comments>http://www.untoldentertainment.com/blog/2011/12/07/flash-to-ios-a-step-by-step-tutorial-part-3-2/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 16:25:16 +0000</pubDate>
		<dc:creator>Sina Kashanizadeh</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Awesomazing]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://www.untoldentertainment.com/blog/?p=4193</guid>
		<description><![CDATA[This is the third part of our tutorial series by Intern Sina on creating an AIR application for free on a PC using FlashDevelop, and deploying it as a native app on an iOS device like the Apple iPad, iPhone or iPod Touch. Jump to other parts in the series: Part 1 &#8211; Sign up [...]]]></description>
			<content:encoded><![CDATA[<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_07/iPadAIR.png" alt="Flash to iOS: A Step-by-Step Tutorial"></p>
</div>
<p>This is the third part of our tutorial series by Intern Sina on creating an AIR application for free on a PC using FlashDevelop, and deploying it as a native app on an iOS device like the Apple iPad, iPhone or iPod Touch.</p>
<p>Jump to other parts in the series:</p>
<ul>
<li><a href="http://www.untoldentertainment.com/blog/2011/11/23/flash-to-ios-a-step-by-step-tutorial-part-1/" title="Flash to iOS: A Step-by-Step Tutorial (Part 1)"><b>Part 1</b> &#8211; Sign up for an Apple iOS Developer Account</a>
<li><a href="http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/" title="Flash to iOS: A Step-by-Step Tutorial (Part 2)"><b>Part 2</b> &#8211; Obtain your Signing Certificate &#038; Mobile Provisioning Profile, and create your App ID</a>
<li><a href="http://www.untoldentertainment.com/blog/2011/12/14/flash-to-ios-a-step-by-step-tutorial-part-4/" title="Flash to iOS: A Step-by-Step Tutorial (Part 4)"><b>Part 4</b> &#8211; Modify your project settings and test your app on an Apple device</a>
</ul>
<h2>Luke Loses His Hand</h2>
<p><a href="http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/" title="Flash to iOS: A Step-by-Step Tutorial (Part 2)">Part 2</a> of this tutorial was like <b>The Empire Strikes Back</b>.  It was the crisis moment in the story of deploying a Flash project to the Apple iOS platform.  It was dark, it was difficult, and Han Solo wound up frozen in carbonite.  Part 3 is redemptive: with all that command line and certificate red tape out of the way, you can finally build our AS3 app using FlashDevelop. Watch closely, friends: you may spot some ewoks.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/iPhone.jpg" alt="It's a trap."></p>
<p>It&#8217;s a trap.
</p></div>
<h2>Install Flash Develop</h2>
<p>As I mentioned earlier in the series, FlashDevelop is a FREE, PC-only coding environment that is used throughout the industry and loved by many. If you haven&#8217;t installed it, <a href="http://www.flashdevelop.org/community/viewforum.php?f=11">head here to download the latest version.</a></p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/fd4.jpg" alt="FlashDevelop 4"></p>
</div>
<p>FlashDevelop is an IDE (Integrated Development Environment) where you can create many different types of applications from scratch.  The most amazing thing about FlashDevelop is that you don’t actually need to buy Adobe&#8217;s Flash Professional software to create Flash (swf) content. FlashDevelop has amazing, time-saving features like importing code libraries on the fly, and numerous awesome templates. At the time of this writing, the latest edition of FlashDevelop is 4.0.0. This version of FlashDevelop contains a template for Mobile AIR applications which you can use for iOS and Android development. In this tutorial, you&#8217;ll use the iOS version of the template.</p>
<h2>Create a Merged SDK Folder</h2>
<p>There are two SDKs (Software Development Kits) you&#8217;ll need to deploy Flash content to the iOS platform: Flex and AIR. Depending on the version of FlashDevelop you install, these two SDKs may already be included in the download.  You&#8217;re going to download them both anew and put them in a single folder. That way, if you mess anything up, you can take off and nuke the site from orbit instead of messing up your main FD install.  It&#8217;s the only way.</p>
<ol>
<li><a href="http://www.adobe.com/special/products/air/sdk/thankyou.html?download=win" title="Download Adobe AIR SDK">Download the latest AIR SDK</a> (which, at the time of this writing, was v3.0)
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/Downloads" title="Download the latest Flex SDK">Download the Flex SDK</a>.
<li>These two packages download as <b>.zip</b> files.  Extract them wherever you like on your computer &#8211; just make sure you know where you put them.
<li>Once you have both SDK&#8217;s extracted to separate folders, copy everything in the AIR SDK folder into the Flex SDK folder. Windows will ask you if you want to overwrite certain files. Say &#8220;yes&#8221; to everything.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/merge.jpg" alt="Merged SDK folder"></p>
</div>
<p>You now have a folder with the <b>Flex SDK</b> and the <b>AIR SDK</b> merged into one. This is a Good Thing™.</p>
</ol>
<h2>Point FlashDevelop to the Flex SDK</h2>
<p>In order to compile (build and execute) your app, you have to point FlashDevelop to the merged SDK folder that you just created.</p>
<ol>
<li>Open up FlashDevelop and hit <b>F10</b> or go to <b>Tools->Program Settings</b> in the menus.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/programSettings.jpg" alt="Program Settings"></p>
</div>
<li>In the Program Settings menu, click on <b>AS3 Context</b>.
<li>Find the <b>Language</b> section, and the <b>Flex SDK Location</b> line within it.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/as3Context.jpg" alt="AS3 Context"></p>
</div>
<li>Click the ellipsis button at the end of that line, and navigate to the merged SDK folder.
<li>Click <b>Close</b> to commit the change.
</ol>
<h2>Set Up Your Mobile AIR Application</h2>
<p>Once you have downloaded and installed FlashDevelop, open it up and you should see it in all its glory:</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/fdInterface.jpg" alt="FlashDevelop 4 Interace"></p>
</div>
<p>To begin with, you&#8217;ll need to create a new FlashDevelop project, which is a group of folders governed by a file filled with metadata about your project.</p>
<ol>
<li>Create a new project by clicking <b>Project -> New Project</b> in the menu.
<li>Now you will see a screen with a multitude of options. These are all project starter templates that FlashDevelop has for you to use. The one you want is the <b>AIR Mobile AS3 App</b>. Select this template, choose a location on your hard drive to save it, give a name to your project, and hit OK.
<p>Note: A package name is not required but the option is there if you&#8217;d like to use it.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/fdTemplates.jpg" alt="FlashDevelop 4 Project Templates"></p>
</div>
<p>After you hit OK, FlashDevelop creates a number of folders and files for you, including:</p>
<ul>
<li>The .as3proj file, which is a FlashDevelop project file filled with metadata that keeps track of various aspects of your project.
<li>The <em>bin</em> folder. This is where your finished files end up.
<li>The <em>lib</em> folder, where you can put your &#8220;construction&#8221; files and artwork.
<li>The <em>src</em> folder, which contains your .as AS3 code files.
</ul>
<li>Once you&#8217;ve created your project file, FlashDevelop starts you off with a blank screen. To open up your code, click on the <b>src</b> folder in the Project sidebar on the right. (The Project sidebar lists your computer&#8217;s actual directory structure so that you can access your Actionscript files quickly and easily.)
<li>Inside the <b>src</b> folder, double click the <b>Main.as</b> file to open it. This is your project&#8217;s point of entry, where you can start writing the code for your app.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/main.jpg" alt="FlashDevelop 4 Main.as"></p>
</div>
<li>Push the F5 key on your keyboard, or the click the little play button at the top-middle of FlashDevelop to compile and run your project.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/compile.jpg" alt="FlashDevelop 4 Compile Button"></p>
</div>
<p>The first compile will take little bit of time, but any compile after that should be quick, because the compiler builds on an as-needed basis, compiling only your most recent changes (as opposed to Flash Professional, which compiles your ENTIRE project every single time. Bleh!). Once you run your new project, the FlashPlayer should pop up and you should see a blank screen. Luckily, this is exactly what we want. As of right now, this is your App.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/blankApp.jpg" alt="FlashDevelop 4 Blank App"></p>
</div>
</ol>
<h2>Hello, Planet</h2>
<p>This is nice and all, but let&#8217;s try to the write a simple message on screen so that when we are testing, we know it actually works. Let&#8217;s write &#8220;Hello Planet&#8221; on-screen.</p>
<ol>
<li>Just below the green commented line where it says //entry point in your <b>Main.as</b> file, copy and paste these lines into your code:

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> tf:<span style="color: #0066CC;">TextField</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">TextField</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;  
<span style="color: #000000; font-weight: bold;">var</span> format:<span style="color: #0066CC;">TextFormat</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">TextFormat</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;  
format.<span style="color: #0066CC;">font</span> = <span style="color: #ff0000;">&quot;_sans&quot;</span>;  
format.<span style="color: #0066CC;">size</span> = <span style="color: #cc66cc;">48</span>;  
tf.<span style="color: #006600;">defaultTextFormat</span> = format;  
tf.<span style="color: #0066CC;">text</span> = <span style="color: #ff0000;">&quot;Hello Planet&quot;</span>;  
tf.<span style="color: #0066CC;">width</span> = <span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span> - <span style="color: #cc66cc;">20</span>;  
tf.<span style="color: #006600;">x</span> = <span style="color: #cc66cc;">10</span>;  
tf.<span style="color: #006600;">y</span> = <span style="color: #cc66cc;">10</span>;  
addChild<span style="color: #66cc66;">&#40;</span>tf<span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/entryPoint.jpg" alt="Code Entry Point"></p>
</div>
<li>Click the compile button (or press F5). Did it screw up? Good. There are a couple more things you have to do before you are ready to compile without errors.
<li>In your code, click to place your cursor carat on the word <b>Textfield</b> and hit Ctrl+Shift+1 on your keyboard. The word turns blue. If you scroll to the top of the class, you&#8217;ll notice that there is an extra import line at the top of your code. CTRL+SHIFT+1 is a special feature of FlashDevelop that does code completion. In this instance, CTRL+SHIFT+1 automatically handles your import statements for you.  You need to import the TextField code with this statement if you want your TextField to work.
<li>Use CTRL+SHIFT+1 on the <b>TextFormat</b> word and you should see this:
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/imports.jpg" alt="Import Statements"></p>
</div>
<li>Now click Compile (or press F5).
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_03/helloPlanet.jpg" alt="Hello Planet"></p>
<p>Thar she blows!
</p></div>
<p>(It works, but it&#8217;s no Angry Birds. &#8211; Ed.)
</ol>
<h2>Bust Out the Hardware</h2>
<p>This is moving along nicely.  You:</p>
<ul>
<li>Installed FlashDevelop, a free and open-source IDE for creating Flash and AIR content
<li>Downloaded and sunk the latest AIR SDK and Flex SDK into a single, merged folder
<li>Pointed FlashDevelop to the Flex SDK to use its superior compiler
<li>Created a new FlashDevelop project using the Mobile AIR application template
<li>Wrote and compiled a new Hello Planet AIR app that you can deploy to a testing device
</ul>
<p>In the next part of the tutorial, you&#8217;ll fine-tune FlashDevelop and modify a number of settings and batch files to create the magical, mystical <b>.ipa</b> file, and you&#8217;ll see that file running on your testing device.<br />
</a></p>
<p><a href="http://www.untoldentertainment.com/blog/2011/12/14/flash-to-ios-a-step-by-step-tutorial-part-4/" title="Flash to iOS: A Step-by-Step Tutorial (Part 4)">Continue to <b>Part 4</b></a>
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2011%2F12%2F07%2Fflash-to-ios-a-step-by-step-tutorial-part-3-2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2011%2F12%2F07%2Fflash-to-ios-a-step-by-step-tutorial-part-3-2%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2011/12/07/flash-to-ios-a-step-by-step-tutorial-part-3-2/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=4193&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2011/12/07/flash-to-ios-a-step-by-step-tutorial-part-3-2/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Flash to iOS: A Step-by-Step Tutorial (Part 2)</title>
		<link>http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/</link>
		<comments>http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 15:09:49 +0000</pubDate>
		<dc:creator>Sina Kashanizadeh</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Awesomazing]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://www.untoldentertainment.com/blog/?p=4097</guid>
		<description><![CDATA[This is the second part of our tutorial series by Intern Sina on creating an AIR application for free on a PC using FlashDevelop, and deploying it as a native app on an iOS device like the Apple iPad, iPhone or iPod Touch. Jump to other parts in the series: Part 1 &#8211; Sign up [...]]]></description>
			<content:encoded><![CDATA[<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_12_07/iPadAIR.png" alt="Flash to iOS: A Step-by-Step Tutorial"></p>
</div>
<p>This is the second part of our tutorial series by Intern Sina on creating an AIR application for free on a PC using FlashDevelop, and deploying it as a native app on an iOS device like the Apple iPad, iPhone or iPod Touch.</p>
<p>Jump to other parts in the series:</p>
<ul>
<li><a href="http://www.untoldentertainment.com/blog/2011/11/23/flash-to-ios-a-step-by-step-tutorial-part-1/" title="Flash to iOS: A Step-by-Step Tutorial (Part 1)"><b>Part 1</b> &#8211; Sign up for an Apple iOS Developer Account</a>
<li><a href="http://www.untoldentertainment.com/blog/2011/12/07/flash-to-ios-a-step-by-step-tutorial-part-3-2/" title="Flash to iOS: A Step-by-Step Tutorial (Part 3)"><b>Part 3</b> -Use FlashDevelop to build your mobile AIR app</a>
<li><a href="http://www.untoldentertainment.com/blog/2011/12/14/flash-to-ios-a-step-by-step-tutorial-part-4/" title="Flash to iOS: A Step-by-Step Tutorial (Part 4)"><b>Part 4</b> &#8211; Modify your project settings and test your app on an Apple device</a>
</ul>
<h2>Drudgery</h2>
<p>Without a doubt, this section of our tutorial series on bundling your Adobe AIR App for Apple&#8217;s iOS platform is the pits.  You have to use a complicated command line interpreter, you have to juggle what may feel like a million different certificates and profiles, and you have to jump through a dizzying array of hoops just to get everything set up &#8230; and you&#8217;re not even going to <em>start</em> building your app at all!  But trust me: once you&#8217;ve cleared these hurdles, the rest of the process is gravy. </p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/gravy.jpg" alt="Gravy"></p>
<p>Thick, delicious gravy.
</p></div>
<p>The first goal of this tutorial is to create a <em>signing certificate</em>, which is used very much like a hot brand on cattle. It&#8217;s the digital signature of you or your company that identifies an app as your own. We need to use a program called OpenSSL to create this signing certificate.</p>
<h2>Install Open SSL</h2>
<p>In order to turn your future AIR project into a native app, you need to create two important files: a Signing Certificate and a Mobile Provisioning Profile. If you are working on a Mac, you actually use a program called Keychain to do some fancy voodoo magic and get the certificate you need.  We are working on a PC and we do not have that luxury, so there are a couple of confusing steps that we must go through. </p>
<p>The first thing you have to do is go to <a href="http://www.slproweb.com/products/Win32OpenSSL.html">http://www.slproweb.com/products/Win32OpenSSL.html</a>. Scroll down, and then download the Visual C++ 2008 Redistributables and install the resulting file. Next, download the <b>Win32 OpenSSL v1.0a Light</b> file and install that after you have installed the first package. These two files will help you create the Signing Certificate Request you so richly deserve.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/openSSL.jpg" alt="OpenSSL"></p>
</div>
<p>Be sure to keep track of where you installed those last two elements. Next, visit this site:</p>
<p><a href="http://help.adobe.com/en_US/as3/iphone/index.html">http://help.adobe.com/en_US/as3/iphone/index.html</a>.</p>
<p>These are Adobe&#8217;s help files for generating your signing certificate and then converting that certificate into a .P12 file. If you get lost in this tutorial, that page will be your safety net.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/adobeHelpPage.jpg" alt="Adobe Help Page"></p>
</div>
<p>On that Adobe support page, you will see some instructions for Mac machines. Ignore them.  Scroll down to the Windows instructions and give them a once-over.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/instructions.jpg" alt="Instructions"></p>
</div>
<p>The instructions say that you have to install Open SSL. You&#8217;ve already done that. Open a command prompt window. You can do this by going to your <b>Start</b> button and typing in cmd in the search field.  (You can also hold the Windows key on your keyboard and hit the &#8220;R&#8221; key (for &#8220;Run&#8221;), then type <b>cmd</b> and hit Enter.)</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/cmd.jpg" alt="CMD"></p>
</div>
<p>Once you are in the command prompt, travel your way to your Open SSL bin folder. Depending on where you installed it you will have to travel to a different path than in this example.  (For your sake, i hope you installed Open SSL in a location that you can remember!) </p>
<p>If this is your first time using the command prompt, here&#8217;s a quick primer on the commands that will help you get around:</p>
<ul>
<li><b>cd</b> This command means &#8220;Change Directory&#8221;. If you are in a directory and you want to go into one of its sub-directories, use this command plus the directory name (example: cd directoryName)
<li><b>cd..</b> This command will pull you up one level in your directory structure
<li><b>dir</b> Type this command to see a list of all of the files and folders within your current directory
<li><b>dir /w</b> The /w (wide) switch spreads a directory listing across multiple columns.  This is useful for seeing all the folder names at a glance, instead of in one big long scrolling list.
</ul>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/cd.jpg" alt="CLI Commands"></p>
</div>
<p>You may have some problems getting some of the following commands to work. A fine commenter (and Ontario resident!) named Dan Zen mentioned on the Adobe guide&#8217;s comments section that you may need to input <b>set RANDFILE=.rnd</b> in your command prompt before the following commands will work properly.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/randfile.jpg" alt="RANDFILE command"></p>
</div>
<h2>Generate a Signing Certificate Request File</h2>
<p>With all of that taken care of, you can start inputting some commands to create your Signing Certificate Request file.  Once you have that file, you&#8217;ll use it to ask Apple for your proper Signing Certificate file that you&#8217;ll use to identify your app. </p>
<ol>
<li> Punch this command into your command line interpreter and hit the ENTER key when you&#8217;re finished:

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">openssl genrsa -out mykey.key 2048</pre></div></div>

<p>You should see this response:</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/response.jpg" alt="response"></p>
</div>
<li>Next, type (or highlight the line, right-click, choose &#8220;Copy&#8221;, and right-click/&#8221;Paste&#8221; in the command line interpreter):

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest  -subj &quot;/emailAddress=yourAddress<span style="color: #33cc33;">@</span>example.com, CN=John Doe, C=US&quot;</pre></div></div>

<li>Now, before you hit ENTER you&#8217;ll want to edit a couple of things. First, replace &#8220;John Doe&#8221; with your own name or company name. Then replace the &#8220;yourAddress@example.com&#8221; email with your own email. Then press ENTER.
<p>You should get a message similar to this:</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/response2.jpg" alt="response"></p>
</div>
<p>You just generated the Signing Certificate Request file that you&#8217;ll use to ask Apple for your Signing Certificate. The  Signing Certificate Request file is located in the <em>bin</em> folder of your Open SSL install.  It has a <em>.certSigningRequest</em> file extension and should look like this:</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/signingRequest.jpg" alt="Certificate Signing Request file"></p>
</div>
</ol>
<h2>Obtain a Signing Certificate for Development</h2>
<p>You have to upload your Signing Certificate Request file to the Apple Provisioning Portal to get your signing certificate.</p>
<p>Note: There have been instances where this upload does not work with Google Chrome. Just to be safe, use another browser like Firefox.</p>
<ol>
<li>Navigate to the iOS Provisioning Portal after logging in with your <a href="http://developer.apple.com">developer account</a> and click on <b>Certificates</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/certificates.jpg" alt="Certificates"></p>
</div>
<li>Click <b>Request Certificate</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/requestCertificate.jpg" alt="Request Certificate"></p>
</div>
<p>Note: If you are a team member and/or you have not paid the annual developer fee of $99 dollars, then you cannot request a Signing Certificate. Only the Team Admin &#8211; the person who has paid the development fee &#8211; will be able make this request.</p>
<p>On the next screen, you will upload the Signing Certificate Request file that you generated in the previous section.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/generateCertificate.jpg" alt="Generate Certificate"></p>
</div>
<li>Click the <b>Browse</b> button and navigate to the <b>bin</b> folder located within your OpenSSL folder.
<li>Once you have selected the Signing Certificate Request file, click Submit. Your next screen should show this:
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/pending.jpg" alt="Certificate Pending"></p>
</div>
<li>Just hit <em>Refresh</em> a couple of times on your browser and you should eventually see this:
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/certificateReady.jpg" alt="Certificate Ready"></p>
</div>
<li>It&#8217;s your Signing Certificate! Go ahead and download it. Just to make things easier, you can save that certificate in the <b>bin</b> folder in the Open SSL folder, where your Certificate Signing Request file is sitting.
</ol>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/saveCertificate.jpg" alt="Save Certificate"></p>
</div>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/saveCertificate2.jpg" alt="Save Certificate 2"></p>
</div>
<h2>Convert the Signing Certificate to a .p12 File</h2>
<p>Are you having fun yet? Yeah, me neither. We are making good progress though. The next step is converting that Signing Certificate to a p12 certificate, because <em>Apple loves certificates</em>.</p>
<ol>
<li>From the Adobe help page, visit the link describing the process of <a href="http://help.adobe.com/en_US/as3/iphone/WS144092a96ffef7cc-371badff126abc17b1f-7fff.html">converting a developer certificate to a p12 file</a>. You get a list of more commands that you&#8217;ll have to punch into your trusty old command prompt.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/helpPage2.jpg" alt="Adobe Help Page 2"></p>
</div>
<li>Copy the first command (highlight the text, right-click and select &#8220;Copy&#8221; from the context menu):

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM</pre></div></div>

<li>Open up your command prompt as I showed earlier, and navigate to the <b>bin</b> folder of your Open SSL directory.
<li>Once you&#8217;re there, paste in the first command (right-click and select &#8220;Paste&#8221; from the context menu), and press ENTER.
<li>Skip ahead to Step 3 of the Adobe help guide and copy that command. (The command in Step 2 is for Macs only.)

<div class="wp_syntax"><div class="code"><pre class="dos" style="font-family:monospace;">openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12</pre></div></div>

<li>Once you punch in the command, enter a password and then verify that password. Make sure the password is something that you will remember.  (Save it in a .txt file in that folder if you&#8217;ve got a lousy memory like me &#8211; Ed.) When you are typing in your password, the command prompt does not give you the luxury of seeing dots or asterisks to indicate how many letters you are typing in. Rest assured that the command is accepting your input.
<p>Note: You <em>may</em> get an error mentioning a &#8220;random state&#8221;. Just type in the command <b>set RANDFILE=.rnd</b> and it should fix the problem for you.</p>
<li>Go into the <b>bin</b> folder in your Open SSL directory and you should see your .p12 file.  Hooray!
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/p12file.jpg" alt="p12 Signing Certificate"></p>
</div>
</ol>
<h2>Create an App ID</h2>
<p>Now that you have the precious file you need, it&#8217;s finally time to create your Mobile Provisioning Profile.  You&#8217;ll start by setting up a unique ID for the app you&#8217;re creating.</p>
<ol>
<li>Navigate back to the <b>Provisioning Portal</b> in your web browser to create an App ID for your app. <a href="http://developer.apple.com" title="Apple Developer Portal">Log in</a>, click on <b>Provisioning Portal</b>, and click on <b>App IDs</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/appIDs.jpg" alt="App IDs"></p>
</div>
<li>Click <b>New App ID</b>.
<p>Note: If you have not paid the developer fee, or if you are just a team member of the Team Admin, you will not see this option. Ask your Team Admin to complete this step.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/newAppID.jpg" alt="New App ID"></p>
</div>
<li>On the next screen you&#8217;ll start by writing a Description for your app, which can be anything you want. (This is what the player will see when he sees your app in the App Store. Obviously, there&#8217;s a whole marketing concern here that&#8217;s outside the scope of this tutorial.  Since we&#8217;re just building a test app, i recommend you punch SOME CRAZY NONSENSE in there for your description.  Take THAT, marketing.  -Ed)
<p>Within the <b>Bundle Seed ID (App ID Prefix)</b> you will have various options, depending on your account status. If you are the Team Admin, you&#8217;ll have a &#8220;Generate New&#8221; option. Team Members will only see a &#8220;Use Team ID&#8221; option.  (If this is not your first App, you could also choose the Bundle Seed IDs for previous project). Either way, leave it at the default.</p>
<p>The <b>Bundle Identifier</b> lets you create a specific package for your App. The standard way to make this package is to reverse the name of your website domain. I used com.sina.ipadtest. (Our team uses com.untoldentertainment.whatever &#8211; Ed.)</p>
<p>Alternately, you can use a generic Bundle Identifier by just putting an &#8220;*&#8221; in the field.</p>
<p><b>Note:</b> There have been cases where the asterisk does not work for some people. It is a safe bet you make a specific namespace like the examples above.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/appDescription.jpg" alt="App Description"></p>
</div>
<li>Click <b>Submit</b>.
<p>Voila &#8211; you have now created your App ID! On the next screen you will see all of the app profiles you&#8217;ve created. </p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/appIDResults.jpg" alt="App ID Results"></p>
</div>
</ol>
<h2>Create a Mobile Provisioning Profile</h2>
<p>Now that you have an <b>App ID</b>, you can now create your <b>Mobile Provisioning Profile</b>.  This is the crowning touch to everything we&#8217;ve done in this tutorial so far. The Mobile Provisioning Profile glues your developer(s), your Signing Certificate, your app ID and your testing device together.  Once you have this file, you&#8217;ll be able to test an app on your device.  </p>
<ol>
<li>Within the Provisioning Portal website, click <b>Provisioning</b> in the sidebar.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/provisioningPortal.jpg" alt="Apple Provisioning Portal"></p>
</div>
<li>Click on <b>New Profile.</b>
<p>Note: You only see this option if you are the fee-paying Team Admin.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/newProfile.jpg" alt="New Apple Provisioning Portal"></p>
</div>
<li>Give your provisioning profile a <b>Profile Name</b>.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/nameProfile.jpg" alt="Apple Name Your Provisioning Profile"></p>
</div>
<li>Choose the <b>Signing Certificate(s)</b> that you want to use with this profile.
<li>Use the drop-down list to indicate the app for which you&#8217;re creating this profile.
<li>Finally, indicate the testing device you want to test it on.
<li>Click Submit.
</ol>
<p>You&#8217;ll be taken to a screen that says your Mobile Provisioning Profile is pending. Just click your browser&#8217;s refresh button a couple of times until the <b>Download</b>button appears, and download your precious, hard-fought profile. Make sure to save it in a location you&#8217;re likely to remember.</p>
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_11_29/profilePending.jpg" alt="Apple Provisioning Profile"></p>
</div>
<h2>Are We There Yet?</h2>
<p>That was a big pile of hoops to jump through just to test an app on your device, and we haven&#8217;t even begun building the app yet!  Here&#8217;s what you just accomplished:</p>
<ol>
<li>You used the command line and OpenSSL to create a Certificate Signing Request file.
<li>You sent that file to Apple. Apple responded by enabling you to download your Signing Certificate file. This file identifies you as the developer of your app.
<li>You converted your Signing Certificate to the .p12 format.
<li>You created an ID for your app.
<li>You created your Mobile Provisioning Profile, the glue that holds all these elements together and enables you to test your app on an iOS device.
</ol>
<p>The good news is that you DO NOT need to repeat the steps to create your Signing Certificate for additional apps. Now that you have that file, you&#8217;ll use it to sign all of your iOS apps from here on in. Similarly, you won&#8217;t have to re-enter your developer ID or device ID for future projects (unless, of course, you gain a new team member or device). The App ID and Mobile Provisioning Profile are the two pieces that are unique to your app &#8211; you WILL need to repeat those steps for additional projects.  </p>
<p>The next part of this tutorial series will cover the process of creating your actual Adobe AIR app using FlashDevelop, bundling it up with this mess of certificates and profiles you just built, and deploying the app to your testing device.  </p>
<p><a href="http://www.untoldentertainment.com/blog/2011/12/07/flash-to-ios-a-step-by-step-tutorial-part-3-2/" title="Flash to iOS: A Step-by-Step Tutorial (Part 3)">Continue to Part 3</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2011%2F11%2F30%2Fflash-to-ios-a-step-by-step-tutorial-part-2%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2011%2F11%2F30%2Fflash-to-ios-a-step-by-step-tutorial-part-2%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=4097&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2011/11/30/flash-to-ios-a-step-by-step-tutorial-part-2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Dear RIM Blackberry Playbook People: Please Put that Shit on a Button</title>
		<link>http://www.untoldentertainment.com/blog/2011/05/19/dear-rim-blackberry-playbook-people-please-put-that-shit-on-a-button/</link>
		<comments>http://www.untoldentertainment.com/blog/2011/05/19/dear-rim-blackberry-playbook-people-please-put-that-shit-on-a-button/#comments</comments>
		<pubDate>Thu, 19 May 2011 18:40:58 +0000</pubDate>
		<dc:creator>Ryan Henson Creighton</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[AS3 Helper Class]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Playbook]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://www.untoldentertainment.com/blog/?p=3722</guid>
		<description><![CDATA[Dear RIM Blackberry Playbook People, Thank you for sending me a Playbook. i like it very much. i didn&#8217;t very much like the steps involved to put my work on the device, though. It was the most needlessly complicated thing i&#8217;ve had to do in all my life. i&#8217;d like to see the Playbook succeed, [...]]]></description>
			<content:encoded><![CDATA[<p>Dear RIM Blackberry Playbook People,</p>
<p>Thank you for sending me a Playbook.  i like it very much.  i didn&#8217;t very much like the steps involved to put my work on the device, though. It was the most needlessly complicated thing i&#8217;ve had to do in all my life. i&#8217;d like to see the Playbook succeed, but you need to put more effort into helping your developers succeed first.  </p>
<p>Here are a few of the issues i ran into while porting my game <a href="https://appworld.blackberry.com/webstore/content/reviews/38777?lang=en">Heads</a> to your platform:</p>
<ol>
<li>i had to download Many Things, and sign up for Many Accounts. Each Thing and each Account came with 15 pages of legalese with an &#8220;I Agree&#8221; button at the bottom.  <em>I Agree</em> &#8230; that this stinks.
<li>One of the Many Things i had to download was Adobe AIR 2.5.  i followed the link on your site to Adobe AIR <em>2.6</em>, which i downloaded instead.  When i tried to follow your workflow, i was told that only AIR 2.5 would work, so i had to cast about the Internatz to find the 2.5 download, which wasn&#8217;t made immediately and obviously available on the Adobe site.  If i&#8217;m creating something for your platform, everything i do should ideally be immediate and obvious.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/clickHere.jpg" alt="Click here">
</div>
<li>i downloaded VMWare and your VMWare Playbook profile so that i could run a virtual Playbook.  But the emulator stalled at the startup screen for a very long time.  i checked message boards, and found two possible solutions:
<ol>
<li>Leave it overnight.
<li>Alternatingly restart your computer or VMWare multiple times (some reports said &#8220;six or seven&#8221;) until it works.
</ol>
<p>i opted to restart VMWare and my computer multiple times until it worked.  This was very frustrating.  i&#8217;m not the only one who experienced this problem, as evidenced by this web comic by my Twitter pal @<a href="http://twitter.com/#!/iqandreas">IQAndreas</a>:</p>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic1.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic2.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic3.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic0.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic0.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic0.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic0.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic0.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic0.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic0.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic0.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<div class="displayed">
<p><a href="http://iqandreas.blogspot.com/2011/03/developing-for-playbook-chapter-3.html"><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/comic4.png" alt="Developing for the Playbook: Chapter 3"></a>
</div>
<li>In order to deploy my game to the virtual Playbook, i had to know its IP.  To get that, i had to swipe the &#8220;development&#8221; option into the &#8220;on&#8221; position and punch in my password.  i had to use the software keyboard to punch in my password, because my computer keyboard didn&#8217;t work.  And worse than that, it took about 4-5 tries swiping the slider and punching in my password before the Developer hammer icon would appear on the home screen &#8230; for whatever reason, that slider kept undoing itself.
<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2011_05_19/slider.jpg" alt="Playbook Development Slider"></p>
<p>Somebody call Jerry O&#8217;Connell, cuz this slider be busted.
</p></div>
<li>When it came time to bundle my files together in a .bar file, i was dismayed to find that since i don&#8217;t use Flash Builder (but, rather, FlashDevelop), i would need to use the command line to continue.  i hate the command line. HAATE it.  i know that eggheads love it, and that you employ Many Eggheads at RIM, but you have to understand that even though the command line is useful and powerful and 1337 and everything, i absolutely can&#8217;t be arsed with it.  Like, not at all.  So knock it off.
<p>Here is what i had to type into the command line in order to bundle my project into a .bar file:</p>
<blockquote><p>C:\dev\BlackBerryTabletSDK\blackberry-tablet-sdk-0.9.3\bin\blackberry-airpackager -package MyGame.bar -installApp -launchApp MyGame-app.xml blackberry-tablet.xml MyGame.swf blackberry-tablet-icon.png -device 192.168.58.128 -password 123456</p></blockquote>
<p>This is not a fun thing to have to type.  Know what i want to do?  Click a button.  Can you make it so that i just click a button?  Buttons good, typing bad.  It may not be 1337, but it also doesn&#8217;t eat up my entire afternoon.</p>
<li>i am currently rocking three Blackberry accounts: one to develop my game, one to sell my game, and one to talk about my game on your forums.  This is Too Many Accounts.  Know how many there should be? One.  Know why?  Because it&#8217;s easier.  Know what&#8217;s not easy?  You.
<li>When i signed my application, i had to download a file that you sent to me two days after i emailed you and asked you for it.  That&#8217;s Too Many Days.  That&#8217;s because you also took two or three days to approve my vendor account.  Why not do this in one step instead of two?  Clearly, a vendor is always going to need the application signing file.  See how you don&#8217;t make things easy, when you potentially could?
<li>Then i had to use the <em>command line</em> (which, as we&#8217;ve already established, is <em>bad</em>) to create a file that i could send to you so that my computer could sign files.  At least i think that&#8217;s what i was doing. Here&#8217;s what the command looked like:<br />
<blockquote><p>blackberry-signer -csksetup -cskpass DesiredCSKPassword</p></blockquote>
<p>Then i had to use the <em>command line</em> (bad. BAD!) to send you my .csj file <em>to receive permission to sign my other file</em>.  i think.  i&#8217;m not quite sure what was going on, because it was tough to interpret the command, which looked like this:</p>
<blockquote><p>blackberry-signer -register -csjpin PinEnteredWhileRequestingCSJ -cskpass PasswordEnteredWhileGeneratingCSK client-RDK-XXXXXXXXXX.csj</p></blockquote>
<p>Next, i had to create a .p12 certificate using this command:</p>
<blockquote><p>
blackberry-keytool -genkeypair -keystore DesiredCertificateName.p12 -storepass NewPassword -dname &#8220;cn=MyCompanyName&#8221; -alias author</p></blockquote>
<p>Then i had to get you to sign the file using this command:</p>
<blockquote><p>blackberry-signer -verbose -cskpass CSKPassword -keystore CertificateName.p12 -storepass StorePassword BarFileNameForRIMToSign.bar RDK</p></blockquote>
<p>Then i had to sign the file myself using this command:</p>
<blockquote><p>blackberry-signer -keystore CertificateName.p12 -storepass StorePassword RimSignedBarFile.bar author</p></blockquote>
<li>When i finally went to upload my file, in the web form you asked me for an <em>additional</em> icon in some bizarre size (243&#215;717 or something like that).  i went away and produced that icon, and by the time i returned, the web form had timed out.  Know what would be easier?  A checklist!<br />
<blockquote><p><b>YOU WILL NEED:</b></p>
<ul>
<li>A swf
<li>An xml file called whatever.xml &#8211; download it HERE!
<li>A thumbnail icon &#8211; download a template HERE!
<li>A second icon &#8211; download a template HERE!
<li>A brief description of your application &#8211; max X words
<li>A long-form description of your application &#8211; max Y words
</ul>
<p>And HERE&#8217;S an image of how all this stuff looks when it&#8217;s in the Blackberry App World!  We&#8217;ve LABELLED everything for you, so you know where the descriptions and icons appear and how they&#8217;ll look to the user.</p></blockquote>
<p>Really, though &#8211; how long does that kind of thing take to set up?  An afternoon?  Why does this not exist yet?</p>
<li>To add insult to injury, my game was initially rejected because it did not contain the icon.png.  i figured i must have forgotten to include the .png filename when i created the .bar file, so i went through all of those horrible steps <em>again</em>.  For a second time, my game was rejected.  Same reason.
<p>Know what the problem was?  i hadn&#8217;t added this to the xml file:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;icon<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;image<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>whatever.png<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/image<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/icon<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>N&#8217;awesome.
</ol>
<p>i didn&#8217;t enjoy doing this, and i don&#8217;t want to have to do it ever again.  Know what i want?  i want a big blank <em>area</em> where i can drag and drop my file, with a huge shiny juicy button that says &#8220;GO BITCH GO&#8221; which, when i click it, <em>does all the bullshit i just described above</em>.  Please get your eggheads on that.  </p>
<p>In addition to all of the brilliant software and hardware engineers you employ, you simply need to hire more <em>people</em> to evaluate this process.  An egghead will tell you that using the command line is cool and awesome and that everyone loves doing it.  A <em>person</em> will tell you the actual truth: using the command line blows, and you need to put that shit on a button.  </p>
<p>Please let me know if and when you plan to put that shit on a button, and i&#8217;ll gladly continue developing for your device, because it&#8217;s pretty cool.</p>
<p>Sincerely,</p>
<p>Ryan Henson Creighton</p>
<p>President, Untold Entertainment Inc.</p>
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2011%2F05%2F19%2Fdear-rim-blackberry-playbook-people-please-put-that-shit-on-a-button%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2011%2F05%2F19%2Fdear-rim-blackberry-playbook-people-please-put-that-shit-on-a-button%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2011/05/19/dear-rim-blackberry-playbook-people-please-put-that-shit-on-a-button/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=3722&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2011/05/19/dear-rim-blackberry-playbook-people-please-put-that-shit-on-a-button/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Sheet Happens! &#8211; Pre-production phase</title>
		<link>http://www.untoldentertainment.com/blog/2007/11/19/sheet-happens-pre-production-phase/</link>
		<comments>http://www.untoldentertainment.com/blog/2007/11/19/sheet-happens-pre-production-phase/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 05:25:36 +0000</pubDate>
		<dc:creator>Ryan Henson Creighton</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://untoldentertainment.com/blog/?p=40</guid>
		<description><![CDATA[Temporary Sheet Happens! logo Pre-production on Sheet Happens!, a hobbyist sheet music app build in AIR (Adobe Integrated Runtime) is in full swing! The final product is being planned for an open-source release so that the Flash/Flex development community can learn this exciting new technology. For those of you just joining us, AIR allows devlopers [...]]]></description>
			<content:encoded><![CDATA[<div class="displayed">
<p><img src="http://www.untoldentertainment.com/blog/img/2007_11_19/tempLogo.jpg" alt="Temporary Sheet Happens! logo"></p>
<p>Temporary <strong>Sheet Happens!</strong> logo
</div>
<p>Pre-production on <strong>Sheet Happens!</strong>, a hobbyist sheet music app build in AIR (Adobe Integrated Runtime) is in full swing!  </p>
<p>The final product is being planned for an <strong>open-source</strong> release so that the Flash/Flex development community can learn this exciting new technology.  For those of you just joining us, AIR allows devlopers to create cross-platform desktop applications using Flash, Flex, or HTML.  (Yes &#8211; <em>HTML</em>.)</p>
<p>In keeping with our open philosophy on this project, we have opened the <a href="http://untoldentertainment.com/wikis/projects/sheetHappens">Sheet Happens! Development Wiki</a> to the public!  You can check in to see how the project is coming along.  You can also watch us track things like hours spent and milestones on the wiki calendar to get a sense of how speedy (or not) AIR is for development.  If you are a student or are just getting started in the industry, you might pick up some do&#8217;s and don&#8217;t's for your own project.</p>
<p>We will also post developer diaries on this blog from time to time to update you on our progress.</p>
<p><strong>Sheet Happens!</strong> gives users an iTunes-style interface to manage their lyric and chord charts.  Songs can be transposed on the fly.  A number of viewing options allow you to customize your songs to help you play them more easily.</p>
<p>Sign up to test this exciting app by emailing us at <strong>info at untoldentertainment.com!</strong>
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F11%2F19%2Fsheet-happens-pre-production-phase%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F11%2F19%2Fsheet-happens-pre-production-phase%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2007/11/19/sheet-happens-pre-production-phase/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=40&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2007/11/19/sheet-happens-pre-production-phase/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sheet Happens &#8211; Concept Phase</title>
		<link>http://www.untoldentertainment.com/blog/2007/11/08/sheet-happens-concept-phase/</link>
		<comments>http://www.untoldentertainment.com/blog/2007/11/08/sheet-happens-concept-phase/#comments</comments>
		<pubDate>Fri, 09 Nov 2007 04:20:37 +0000</pubDate>
		<dc:creator>Ryan Henson Creighton</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://untoldentertainment.com/blog/?p=33</guid>
		<description><![CDATA[The next project in development at Untold Entertainment is called Sheet Happens. It will be an AIR (Adobe Integrated Runtime) app, which means it will sit on the user&#8217;s desktop. i&#8217;ll be building it in Flash (saviour of the universe). Software should solve a problem, or endeavor to make a task easier to do. In [...]]]></description>
			<content:encoded><![CDATA[<p>The next project in development at Untold Entertainment is called <strong>Sheet Happens</strong>.  It will be an <a href="http://labs.adobe.com/technologies/air/">AIR (Adobe Integrated Runtime)</a> app, which means it will sit on the user&#8217;s desktop.  i&#8217;ll be building it in Flash (saviour of the universe).</p>
<p>Software should solve a problem, or endeavor to make a task easier to do.  In this early concept phase of the <strong>Sheet Happens</strong> app, i&#8217;ll outline a few problems, and then explain how i intend to solve them by building this software.</p>
<p><big><strong>Problem #1: Sheet Music Search and Organization</strong></big></p>
<p>i&#8217;m a hobbyist musician, and can play well enough from a &#8220;fake book&#8221;, which has song lyrics accompanied by chord descriptions, with a melody line for the vocals.  More often than not, the sheets i find on the Internets are even more bare-bones, consisting of only the lyrics and chords.  These compositions assume that the musician already knows the melody. </p>
<p>Here&#8217;s a comparison between full notation, &#8220;fake&#8221; notation, and chords-only:</p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/sheetmusic.jpg" alt="Notational sheet music"><br />
<center><small><strong>Full notation</strong></small></center></p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/fakebook.jpg" alt="Fakebook-style sheet music"><br />
<center><small><strong>Fakebook-style sheet music</strong></small></center></p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/chordsonly.jpg" alt="Just the chords, Ma'am."><br />
<center><small><strong>Just the chords, Ma&#8217;am.</strong></small></center></p>
<p>Whenever i want to play a song, i look it up on the Internets to hunt down one of these fake sheets.  Then i either print it out, or i memorize the chord progression (if it&#8217;s simple) and play away.  i never bookmark the music.  Only very rarely will i copy/paste the music into a text file.</p>
<p>It&#8217;s not a very solid system i&#8217;ve got going.  i have to hit the Internets and re-search for a piece of music every time i want to play it, because i can&#8217;t be bothered fishing through a bunch of text files.  The <strong>Sheet Happens</strong> app is going to solve this problem by organizing fake sheets using AIR&#8217;s included database.  Imagine being able to store your sheet music songs with an interface like iTunes:</p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/itunes.jpg" alt="iTunes organization is teh awesome"></p>
<p>You&#8217;ll be able to sort by year, genre, artist, etc.  You can also search your song list.</p>
<p><big><strong>Problem #2: Inaccuracies</strong></big></p>
<p>The trouble with many of these fake sheets is that they&#8217;re written by other hobbyists who fiddle around, learn the chords, and stick them in a text file against the song lyrics.  Sometimes, the lyrics get written as the hobbyist hears them &#8211; for example:</p>
<p><strong>Purple Haze</strong>, Jimi Hendrix &#8211; &#8220;Scuse me, while i kiss this guy&#8221;<br />
<strong>Bad Moon Rising</strong>, CCR &#8211; &#8220;There&#8217;s a bathroom on the right&#8221;<br />
<strong>What a Wonderful World</strong>, Louis Armstrong &#8211; &#8220;The bright blessed days, the dogs say goodnight&#8221;<br />
<strong>Tiny Dancer</strong>, Elton John &#8211; &#8220;Hold me closer, Tony Danza&#8221;</p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/tonydanza.jpg" alt="Eh, ohh ... ohh ehh!"></p>
<p>You can usually work around these mistakes if you know the proper lyrics, but since i view these sheets on a webpage, i can&#8217;t get in and fiddle with the bits.</p>
<p>It&#8217;s more challenging when the <em>chords</em> are incorrect.  i have a hard time remembering that the Dm is actually supposed to be a Dmaj7 when i&#8217;m in the middle of singing and playing, say, <strong>Every Rose Has its Thorn</strong> by Poison.  It&#8217;s frustrating when my soulful crooning gets interrupted.</p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/poison.jpg" alt="i sing it to drive the ladies wild"><br />
<center><small><strong>i sing it to drive the ladies wild. (Those ARE ladies, right?)</strong></small></center></p>
<p>So!  To sum up this point, the Sheet Happens software will allow you to edit lyrics and chords.  But let&#8217;s go farther than that.</p>
<p>When people write these fake sheets, they&#8217;re not always careful to put the chord changes in the right place.  The next chord should really be written above the word where the chord changes, but this isn&#8217;t always easy or accurate when you write the lyrcis in Notepad.  So Sheet Happens is going to turn the chords into draggable icons that you can position precisely over the proper lyric so the changes happen in the right place.</p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/chordchanges.jpg" alt="Move the chords around to their proper places"><br />
<center><small><strong>Move the chords around to their proper places</strong></small></center></p>
<p>Ideally, you&#8217;ll be able to import a text file or HTML file into <strong>Sheet Happens</strong>. The software will strip out the HTML tags.  It will automagically recognize the chords, and will convert them into programmatic chord icons.  Then we can have fun, fun, fun.  (That is, until daddy takes the proverbial T-Bird away.)</p>
<p><big><strong>Problem #3: Transposition</strong></big></p>
<p>So far, <strong>Sheet Happens</strong> isn&#8217;t going to change the world.  It&#8217;s basically Notepad attached to a database for easier file management.  Let&#8217;s crank it up a notch.</p>
<p>When i play a song from one of these fake sheets and it&#8217;s too high or too low for me to sing, i cheat.  My keyboard has a &#8220;transpose&#8221; button that lets me adjust the key up or down.  A keyboardist can do this very easily, but a band can&#8217;t.  Pianists, guitarists, tuba players &#8211; they&#8217;re all out of luck if they can&#8217;t transpose the music on the fly with <em>sheer mind power</em>.</p>
<p>Since the <strong>Sheet Happens</strong> chords are already magical, draggable and programmatic, let&#8217;s give the user a &#8220;transpose&#8221; button to change the sheet music&#8217;s key up or down on the fly.  NOW we&#8217;re talking.</p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/transpose.jpg" alt="Transpose, as if by magic!"></p>
<p><big><strong>Problem #4: Tabs, Chords, Fingering</strong></big></p>
<p>There are a few differences when musicians read music.  Sometimes, fake sheets will have split chords, like F/C.  This means that the pianist or keyboardist should play F with his right hand where the high notes are, and the C chord with his left hand where the low notes are.  Guitarists can&#8217;t really do this.  When they reach a split chord like F/C, they have to remember to play only the F chord.</p>
<p>It sounds pretty easy, but i work with a lot of new guitarists, and this trips them up every time.  They usually try to play F first and then C, when they should only play F.</p>
<p>To solve this problem, <strong>Sheet Happens</strong> will include a split chord toggle to show either the split chord, treble chord only, or bass chord only.  So you&#8217;ll be able to set &#8220;treble chord only&#8221;, and then print off a few sheets for the guitarists in your band.</p>
<p>Pianists and guitarists also read chords differently.  Guitarists sometimes use tab notation, which shows a little diagram depicting which strings they&#8217;re supposed to hold down to play a chord.  Pianos and keyboards have keys instead of strings, so guitar tabs are useless. Beginner pianists might like to see fingering charts that show them which keys to press.</p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/tabsvsfingering.jpg" alt="Tabs vs Fingering"></p>
<p>Since the chords in Sheet Happens are all juicy and programmatic, we&#8217;ll throw in an option to show chords, tabs, and keyboard fingering.  We can even build in options to choose different chord intervals (different ways of playing chords), and if we go REALLY crazy, we can throw in support for other instruments like trumpets.</p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/fingering.jpg" alt="Sheet Happens will show various fingering charts"></p>
<p><big><strong>Problem #5: Not Enough Love in This World</strong></big></p>
<p>i&#8217;ve often heard the complaint that there are too many men, and too many people making too many problems, and not much love to go round.  Truly, this is is a land of confusion.  To solve this problem, <strong>Sheet Happens</strong> will love the user unconditionally and will listen to his or her problems.  To accomplish this, i&#8217;ll use an associative array.  Or something. i dunno.</p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/lovemusic.jpg" alt="Music that loves you back"><br />
<center><small><strong>Music that loves you back</strong></small></center></p>
<p><big><strong>On to Phase Two!</strong></big></p>
<p>Phase Two of the project design is to sort out what kinds of classes i need to build to serve the program.  As i am brand new to object oriented programming, i expect to make many mistakes in this phase, but i&#8217;ll share them all as i make them.  i am halfway through Colin Moock&#8217;s <strong><a href="http://untoldentertainment.com/blog/?p=21">Essential Actionscript 3.0</a></strong> book, and i have the O&#8217;Reilly <a href="http://www.amazon.ca/ActionScript-3-0-Cookbook-Joey-Lott/dp/0596526954/ref=sr_1_1/701-8343489-0093106?ie=UTF8&#038;s=books&#038;qid=1194577714&#038;sr=8-1"><strong>Actionscript 3.0 Cookbook</strong></a> at my side, so i&#8217;ll soldier through and record my progress.  Stay tuned for the next update.</p>
<p><img class="displayed" src="http://www.untoldentertainment.com/blog/img/2007_11_08/cookbook.jpg" alt="Bam!  Or something.">
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F11%2F08%2Fsheet-happens-concept-phase%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F11%2F08%2Fsheet-happens-concept-phase%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2007/11/08/sheet-happens-concept-phase/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=33&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2007/11/08/sheet-happens-concept-phase/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adobe AIR app ideas</title>
		<link>http://www.untoldentertainment.com/blog/2007/09/28/adobe-air-app-ideas/</link>
		<comments>http://www.untoldentertainment.com/blog/2007/09/28/adobe-air-app-ideas/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 18:52:13 +0000</pubDate>
		<dc:creator>Ryan Henson Creighton</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Ideas]]></category>

		<guid isPermaLink="false">http://untoldentertainment.com/blog/?p=11</guid>
		<description><![CDATA[While it&#8217;s still fresh in my mind, i wanted to commit to pixels the ideas that sprung to mind during the Adobe OnAIR Bus Tour. AIR is a product that lets you develop desktop applications. The apps can interface with the Internets and your user&#8217;s local file system. Adobe has taken pains to ensure that [...]]]></description>
			<content:encoded><![CDATA[<p>While it&#8217;s still fresh in my mind, i wanted to commit to pixels the ideas that sprung to mind during the Adobe OnAIR Bus Tour.</p>
<p>AIR is a product that lets you develop desktop applications.  The apps can interface with the Internets and your user&#8217;s local file system.  Adobe has taken pains to ensure that the product is accessible to as many people as possible, from C-language coders using Flex, traditional HTML and javascript guys, and web sugar Flash guys and game developers like myself.</p>
<p>i don&#8217;t know why, but the one feature of AIR that gripped me most was the file drag n&#8217; drop API.  Here it is in a nutshell:</p>
<p>- drag and drop files onto your app<br />
- teach your app to recognize the file type<br />
- teach your app to respond to the file when it is dragged into the app, and when it is dropped (user releases the mouse button)<br />
- drag stuff out of your app and on to other apps<br />
- bundle file info with the doodad you&#8217;re dragging so that other programs will recognize and accept it (for example, your user drags an image out of your app and on to Photoshop.  Photoshop likes image files, so it loads the sucker up.)</p>
<p>Wow!  Pretty boring &#8211; unless you have imaaaaaaginaaaaationnnn &#8230;.<br />
<span id="more-11"></span><br />
(twinkly stars-and-unicorns crossfade with tingly chime sound effects)</p>
<p><strong>File Fiter</strong></p>
<p>Rember <a href="http://en.wikipedia.org/wiki/Barcode_Battler">Barcode Battlers</a>?  Scan the UPC code from a can of soup, and the app turns the info into battle stats for a fighting monster. </p>
<p>This idea is exactly like that, except &#8230; well, except nothing.  It&#8217;s exactly like that.  Drag any file onto your AIR app. The user sees an animation of a little squirmy file being dragged by the scruff of its neck.  The user drops the file, and the app starts reading the file stats. i haven&#8217;t checked to see what we&#8217;ll know about the file, but i&#8217;m counting on at least file size, name, extension, and (i think) icon information that you can extract using the BitmapData class.  </p>
<p>So you drop your file &#8211; taxes.xls.  The AIR app starts building a little monster.  The monster grows tentacles because the file name is 5 characters.  The monster is purple with a +10 fire bonus because the filesize is over 10kb.  The monster is armed with a deadly CALCULATOR because his file is spreadsheet-related.  </p>
<p>Viola &#8211; your badass File Fiter is ready to fite.  You can drop your hotcurry.jpg into the app and watch it mutate, then let the files go at it like bugs in a jar.  Or you can upload your file and watch it punch (or calculate) the crap out of some other guy&#8217;s zip file.</p>
<p>It could be an automatic fite, or you could take control of your file a la Pokéwhatever  &#8211; it all depends on how much work you wanna put into the app.</p>
<p>This is the kind of completely useless nonsense running through my head as i learned about the software.  It&#8217;s so useless, i am happy to share it with you.  Whoever builds it first, wins.</p>
<p><strong>Angry Desktop Tiki</strong></p>
<p>Angry Desktop Tiki ran through my brain when i was getting worried about the destructive things you could do with Adobe AIR.  Angry Desktop Tiki is a polynesian god of the volcano.  He looks like that idol from that 80&#8242;s board game <a href="http://en.wikipedia.org/wiki/Fireball_Island">Fireball Island</a>, or like your dad when he stubs his toe.  You know &#8211; all angry-styles.  </p>
<p>Angry Desktop Tiki becomes enraged every X minutes and demands a sacrifice of 1 file.  He could ask for just any file, or he could specify.  Angry Desktop Tiki demands a targa!!  Angry Desktop Tiki demands system.ini!  So then you gotta go hunt down the file it wants and drag it over Angry Desktop Tiki&#8217;s gaping maw to sacrifice the file.  Then Angry Desktop Tiki deletes it, cuz he&#8217;s a dick.</p>
<p>If you&#8217;re away from the desk when Angry Desktop Tiki demands a file sacrifice, he randomly chooses a file on your computer and eats it.  Does that sound unfair?  Tough nuts.  Angry Desktop Tiki does what Angry Desktop Tiki wants.</p>
<p>i don&#8217;t know who in their right mind would want to download Angry Desktop Tiki, but the fact remains that Flash lets you do some pretty dastardly stuff, and AIR just gives you a suite of tools to be positively evil.  i&#8217;ve said before that it&#8217;s like having super powers, and you have to choose whether to use those powers for good, or for Angry Desktop Tiki.</p>
<p>If you would like to build Angry Desktop Tiki in Adobe AIR, please contact me.  Maybe you can become my supervillain arch nemesis?</p>
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F09%2F28%2Fadobe-air-app-ideas%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F09%2F28%2Fadobe-air-app-ideas%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2007/09/28/adobe-air-app-ideas/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=11&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2007/09/28/adobe-air-app-ideas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Christ/AIR</title>
		<link>http://www.untoldentertainment.com/blog/2007/09/28/christair/</link>
		<comments>http://www.untoldentertainment.com/blog/2007/09/28/christair/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 13:46:25 +0000</pubDate>
		<dc:creator>Ryan Henson Creighton</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://untoldentertainment.com/blog/?p=7</guid>
		<description><![CDATA[i ranted a little yesterday about the puffy egos on the Adobe OnAIR Bus Tour. i said the Adobe evangelist staffers acted as though they thought they were Jesus, and for that, i feel i should apologize. To Jesus. From what i know of Him, Jesus would never act as totally awesome and unapproachable as [...]]]></description>
			<content:encoded><![CDATA[<p>i ranted a little yesterday about the puffy egos on the Adobe OnAIR Bus Tour.  i said the Adobe evangelist staffers acted as though they thought they were Jesus, and for that, i feel i should apologize.  To Jesus.</p>
<p>From what i know of Him, Jesus would never act as totally awesome and unapproachable as the OnAIR bus guys, and he wouldn&#8217;t be caught dead taking 77 000 vanity pictures of himself and his disciples.</p>
<p>Truth be told, Jesus wouldn&#8217;t be caught dead <em>anywhere</em>.   ;)
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F09%2F28%2Fchristair%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F09%2F28%2Fchristair%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2007/09/28/christair/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=7&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2007/09/28/christair/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe OnAIR Bus Tour Rolls Through Toronto</title>
		<link>http://www.untoldentertainment.com/blog/2007/09/28/adobe-onair-bus-tour-rolls-through-toronto/</link>
		<comments>http://www.untoldentertainment.com/blog/2007/09/28/adobe-onair-bus-tour-rolls-through-toronto/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 02:22:46 +0000</pubDate>
		<dc:creator>Ryan Henson Creighton</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Canadian Media News]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://untoldentertainment.com/blog/?p=5</guid>
		<description><![CDATA[Adobe put together a tour to promote their new software, Adobe AIR. They held an all-day even at the Guvernment in Toronto. Here are my thoughts: About Adobe Air The product looks great. Mind you, i sat through a day-long brainwashing and indoctrination session. i don&#8217;t remember much, but i have a feeling i signed [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe put together a tour to promote their new software, Adobe AIR.  They held an all-day even at the Guvernment in Toronto.  Here are my thoughts:</p>
<p><center><img src="http://www.untoldentertainment.com/blog/img/2007_09_27/bus.jpg" alt="OMG it's a BUS!!!  i must totally lose control now." /></center></p>
<p><strong>About <a href="http://labs.adobe.com/technologies/air/">Adobe Air</a></strong></p>
<p>The product looks great.  Mind you, i sat through a day-long brainwashing and indoctrination session.  i don&#8217;t remember much, but i have a feeling i signed some kind of purchase agreement, and was touched inappropriately by the Bus Tour presenters.  Here&#8217;s what i recite robotically when someone utters the phrase &#8220;Adobe AIR makes you cluck like a chicken&#8221;:</p>
<p>Adobe AIR is an app that lets you create desktop software.  It&#8217;s all the same nonsense that you create in http://www.adobe.com/products/flex/ or <a href="http://www.adobe.com/products/flash/">Flash</a>, with some delicious new superpowers that i&#8217;ll list in a bit.  You can also code AIR apps using javascript and HTML, which kind of blew my mind.  What they&#8217;ve basically done is expose Actionscript 3 to html/js developers, so that you can use tagged code to pull of some magical fancy wizardry like file drag n&#8217; drop, opening and closing the dashboard, and playing FLVs.  Through AIGCH TEE EMM ELL, folks.  The markup language that brought you your favourite web pages from the 1930&#8242;s.  Mind-blowing.i just named a few, but let me rattle off the goodies that made me fill my pants with processed Adobe-sponsored hors d&#8217;oeuvres:</p>
<p>- open and close the file dashboard to load stuff and save stuff<br />
<br />
- recognize when files are dragged over your app &#8211; file type too &#8211; and respond to that event<br />
<br />
- let the user pull stuff OUT of your app, draggy/droppy style, and bundle that with file info so that, for example, you can build an app where the user pulls a jpg OUT of your thing and IN to Photoshop, and P-shop&#8217;s all like &#8220;that&#8217;s coo&#8221;<br />
<br />
- build your app ONCE to deliver on Mac, PC, whatever<br />
<br />
- native OS support.  All your windows and alerts and prompts are gonna look like they&#8217;re at home on the Mac or the PC &#8211; whatever your user digs &#8211; and you don&#8217;t have to lift a finger<br />
<br />
- windowing.  Give your app a window with the title bar and min/max/close gadgets.  Or a slimmer window chrome.  Or NO BLOODY CHROME AT ALL.  That means if you dupe someone into running your AIR app, you could have a transparent chromeless window with a naked pic of gramma stuck like graffitti to the desktop.  RrrrrroOWWWRR!!<br />
<br />
- create one &#8211; 1 &#8211; WUN &#8211; png, and let AIR figure out how to build the icons.  It builds Mac icons!  It builds PC icons!  It does different sizes!  It slices!  It dices!  Anyway &#8211; a very nice feature, because it&#8217;s a great polished detail and one less thing to fuss over.<br />
<br />
- Local single-file database.  Hot, hot hot.  You can set up a 1-file DB on the user&#8217;s machine and store things in there, like secrets and Tic Tacs</p>
<p>Code bridging.  Easy communication between apps.  Data synch.  Connectivity detection.  Installation badges.  i could go on.  Some of you app devs out there will be like &#8220;what&#8217;s the big deal?  i&#8217;ve been developing desktop apps for years.&#8221;  Yeah, big shot?  Well I HAVEN&#8217;T.  Flash hasn&#8217;t been able to do any of this nonsense without some heavy-duty nipple-twisting.  Sure, you can open the dashboard, but you kiss your soul goodbye and hope Satan has fun with it, because you gotta re-hooptle the flimflam and unjiggrify the blaminator before you can get it working.  With Adobe AIR, the syntax is something like &#8220;GIMME MAH DASHBOARD, BITCHES!&#8221;  and *poof* &#8230; you got the dashboard.   And given the choice between Adobe documentation and Microsoft Developer Network, i&#8217;d rather see Adobe&#8217;s simple code usage example right up front than navigate Microsoft&#8217;s labyrynthine list of common runtime usage and exceptions and NerdSpeak.  OPEN MAH DASHBOARD, BITCHES.  Sheesh.  Throw some dots and slashes in there, and you&#8217;re done.</p>
<p>Next post: more about the Adobe OnAIR tour.  Sure, Grant Skinner knows his code, but is he hot or not?  And which of the Adobe bus evangelists would YOU rate as best &#8211; and WORST &#8211; dressed?
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F09%2F28%2Fadobe-onair-bus-tour-rolls-through-toronto%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F09%2F28%2Fadobe-onair-bus-tour-rolls-through-toronto%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2007/09/28/adobe-onair-bus-tour-rolls-through-toronto/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=5&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2007/09/28/adobe-onair-bus-tour-rolls-through-toronto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adobe OnAIR Tour &#8211; a Bus Load of Jesuses</title>
		<link>http://www.untoldentertainment.com/blog/2007/09/28/adobe-onair-tour-a-bus-load-of-jesuses/</link>
		<comments>http://www.untoldentertainment.com/blog/2007/09/28/adobe-onair-tour-a-bus-load-of-jesuses/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 05:25:49 +0000</pubDate>
		<dc:creator>Ryan Henson Creighton</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Canadian Media News]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://untoldentertainment.com/blog/?p=6</guid>
		<description><![CDATA[So i&#8217;ve done my hypnosis-induced duty by telling you all about the Adobe OnAIR Bus Tour. Now for a Queer Eye-style post-analysis of the event that you won&#8217;t find anywhere else. Here are a few scraps of evidence that i collected at the day-long promotional event that i use to draw a profound conclusion. The [...]]]></description>
			<content:encoded><![CDATA[<p>So i&#8217;ve done my hypnosis-induced duty by <a href="http://www.untoldentertainment.com/blog/?p=5">telling you all about</a> the <a href="http://labs.adobe.com/technologies/air/">Adobe OnAIR Bus Tour</a>.  Now for a Queer Eye-style post-analysis of the event that you won&#8217;t find anywhere else.</p>
<p>Here are a few scraps of evidence that i collected at the day-long promotional event that i use to draw a profound conclusion.</p>
<p><strong>The Bus.</strong></p>
<p>So Adobe crams a bunch of dev geeks on a bus and ships them off on a nationwide tour to shill their new product.</p>
<p>It&#8217;s a bus.  i know this because they called the promotion the Adobe OnAIR Bus Tour.  When i arrived at the event, people were taking pictues of the bus.  The bus factored in a majority of the pictures and tech demos i saw at the event.  It was mentioned in nearly every breath the presenters took.</p>
<p>So here&#8217;s what i don&#8217;t get:  it&#8217;s a <em>bus</em>. </p>
<p>Adobe saves a few bucks on air fare for their overweight A-Team and decides to spin it by promoting the Hell out of the fact that the tour is on a bus.  Forgive, but it&#8217;s not like you&#8217;re the Rolling Thunder Tour on a year-long concert crawl with Bob Dylan and Joan Friggin Baez penning songs for the ages and redefining the cultural zeitgeist.  You&#8217;re handful of overweight nerds sleeping on a <em>bus</em>.  The bus became this big shiny phallus that all of the presenters stroked onstage until it shot an enormous wad of 77 000 pictures onto the presentation screen which were, coincidentally, all taken <em>inside the bus</em>.   The Escher-like qualities of this collossal wank boggle the mind.</p>
<p><strong>The 77 000 pictures taken inside the bus.</strong></p>
<p>In the final session of the extremely long day, well after everyone had run out of interesting things to say, Mike Chambers positively gushed over the fact that he mounted a camera inside the bus and, using an Adobe AIR app, uploaded a time-released shot EVERY MINUTE to <a href="http://www.flickr.com">Flickr</a>.  The result was a Flickr account with 77 000 pictures of a mobile sausage party, with such amazing highlights as:</p>
<p>- chubby technophiles lounging on benches<br />
- two dudes playing Guitar Hero<br />
- an empty bench, devoid of overweight dudes<br />
- dudes checking their email on laptops</p>
<p>Then, for his presentation&#8217;s money shot, Chambers showcased a video where he &#8211; get this &#8211; PLAYED THE PHOTOS IN RAPID SUCCSSION to create the ILLUSION OF MOVEMENT.  He began running SEVEN MINUTES of timelapse photography where, if you squinted kinda hard and clapped your hands to believe in fairies, you could swear it ALMOST ran at the same frame rate as an invention that we now call 30 FRAMES PER SECOND VIDEO.  Mike was all &#8220;OMG, this is incredible!  Look &#8211; when you put all these photos together, it looks like we&#8217;re really moving around the bus!&#8221;</p>
<p>
<center><br />
<img src="http://untoldentertainment.com/blog/img/2007_09_27/busvideo.png" alt="This is almost better than ... absolutely nothing." /><br />
<small><strong>It&#8217;s unclear to me why Adobe thinks that developers should take a day off work to endure <a href="http://theflashblog.com/?p=272">this</a>.</strong></small><br />
</center>
</p>
<p>&#8220;LOOK!  i duct taped the camera to the wall and it started to droop as it took the pictures but it looks kind of artistic when you play it back!&#8221;</p>
<p>His words.  Seriously. Then he said, with his hands down his pants, that he&#8217;d love to run a contest where the winner had to find the best picture in the lot of 77 000.  He went on to explain that the pictures totalled <em>only</em> 77 000 because he turned the camera off at night when the bus was dark &#8220;<em>and the pictures were less interesting</em>&#8220;.</p>
<p>My conclusion?</p>
<p><strong>Riding the bus makes you <em>Jesus</em>.</strong></p>
<p>i&#8217;m pretty sure Jesus never even <em>rode</em> a bus, but you wouldn&#8217;t know it the way these guys carried on.  Humility is not their strong suit.  When i approached <a href="http://www.gskinner.com/site2_5/">Grant Skinner</a> just to introduce myself as a Fellow of the Flash, it was almost as though he was offended because i didn&#8217;t kiss his ring.  Fair enough &#8211; he was checking his email.  He&#8217;s an important man.  Adobe&#8217;s not paying him to sit in a corner to answer questions and meet developers, following a presentation where the speaker announced that the AIR team members were going to sit in a corner to answer questions and meet developers.        &#8230; ?</p>
<p>Then there was Kevin Hoyt, who looked like he had somewhere else to be when i started asking questions about signed code and installation trust with AIR.  Sure, sure &#8211; i may have mistakenly called him &#8220;Mike&#8221; a few times, but you gotta take that kind of thing in stride when you&#8217;re clearly the Second Coming of the TechnoChrist.  He just so happened to be talking to Grant Skinner when i approached him, and there was this barely perceptible moment where they exchanged &#8220;don&#8217;t bother with this guy&#8221; vibes through <em>osmosis</em>, or some kind of new AIR app they built that enables telepathy.</p>
<p>Here&#8217;s one more gripe for you:</p>
<p><strong>Adobe Hires Nerds, Not Presenters</strong></p>
<p>All of the awkwardness of the junior high graduation dance was on full display as the Adobe bus buddies took the stage to promote the product, making such amateurish presentation decisions as yelling &#8220;HOWZ EVERBUDDY DOIN THIS MURNIN!! YUH FEELIN <em>GOOD</em>???&#8221; at 9:15 AM, and when everyone gave the typical collective zombie moan response, &#8220;WHAT?  Iiiii CAAaan&#8217;t HEEEEAR YOooooUUu!&#8221;  like that pirate from the opening of Spongebob Squarepants.</p>
<p>On the subject of bikini bottoms, kudos to the presenter from <a href="http://www.akamai.com/">Akamai</a>, who despite being a very nebbish fellow, took time during his presentation to show a client video of a bikini contest.  That&#8217;s what i call understanding your audience.</p>
<p>Grant Skinner, despite acting somewhat <em>papal</em> when i introduced myself to him, was the only presenter who threw out ideas about how to actually earn MONEY using AIR.</p>
<p>A succession of borderline mentally retarded presenters from various sponsor companies followed, each speaker poorer than the last, until the last guy came to the stage, sat on the mic, and yodelled his address to a presentation-weary crowd.  Horribly bad.</p>
<p>The clear winner all day was <a href="http://leebrimelow.com/blog/">Lee Brimelow</a>, who was the only presenter to effectively use humour in his presentation.  While the rest of the presenters stroked their nipples and talked about the bus all day long, Lee showed off a few useless but amusing AIR apps that showcased the platform&#8217;s features in exciting and unique ways.</p>
<p>i spoke to Lee afterward, and he was a class act. Humble to the bone, and pleasant in person, i found him eagerly answering attendees&#8217; questions and smiling while he did it.  Granted, Lee had just joined the tour and wasn&#8217;t spoiled by all of the rotten road fatigue and delusions of grandeur that plagued everyone else.  But Lee is the best example of Adobe&#8217;s money well spent on an evangelist.</p>
<p>With a few stops left on the tour and the developer conference, <a href="http://www.adobe.com/events/max/">Max</a>, as the big finish, it will be interesting to see if an evangelist can convert a bus load of Jesuses.
<div class="tweetmeme_button" style="margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F09%2F28%2Fadobe-onair-tour-a-bus-load-of-jesuses%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.untoldentertainment.com%2Fblog%2F2007%2F09%2F28%2Fadobe-onair-tour-a-bus-load-of-jesuses%2F&amp;source=untoldent&amp;style=normal&amp;service_api=R_44463fc40e5eda8ec585b4088e695066&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="fbconnect_share"><fb:share-button class="url" href="http://www.untoldentertainment.com/blog/2007/09/28/adobe-onair-tour-a-bus-load-of-jesuses/" /></p><img src="http://www.untoldentertainment.com/blog/?ak_action=api_record_view&id=6&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.untoldentertainment.com/blog/2007/09/28/adobe-onair-tour-a-bus-load-of-jesuses/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

