<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>zero one zero</title>
	
	<link>http://blog.010.com.au</link>
	<description>dave wraights blog ...</description>
	<lastBuildDate>Thu, 17 May 2012 13:39:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/zoz/davewraight" /><feedburner:info uri="zoz/davewraight" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Core Data / Magical Record presentation</title>
		<link>http://feedproxy.google.com/~r/zoz/davewraight/~3/NufO5J-Kr_g/</link>
		<comments>http://blog.010.com.au/core-data-magical-record-presentation/#comments</comments>
		<pubDate>Thu, 17 May 2012 13:39:49 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://blog.010.com.au/?p=54</guid>
		<description><![CDATA[here's a presentation I recently gave on using Magical Record and Core Data. If anyone would like the sample project I can upload those also. Data Access Presentation]]></description>
			<content:encoded><![CDATA[<p>here's a presentation I recently gave on using Magical Record and Core Data.</p>
<p>If anyone would like the sample project I can upload those also.</p>
<p><a href="http://blog.010.com.au/wp-content/uploads/2012/05/Data-Access-Presentation.pdf">Data Access Presentation</a></p>
<img src="http://feeds.feedburner.com/~r/zoz/davewraight/~4/NufO5J-Kr_g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.010.com.au/core-data-magical-record-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.010.com.au/core-data-magical-record-presentation/</feedburner:origLink></item>
		<item>
		<title>OTA:  Distribution of iOS Apps without iTunes (Pt1)</title>
		<link>http://feedproxy.google.com/~r/zoz/davewraight/~3/8ywlaO9bobM/</link>
		<comments>http://blog.010.com.au/ota-distribution-of-ios-apps-without-itunes-pt1/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 15:54:25 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[iOS]]></category>
		<category><![CDATA[adhoc]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[ota]]></category>
		<category><![CDATA[over the air ios]]></category>
		<category><![CDATA[provisioning profile]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://blog.010.com.au/?p=31</guid>
		<description><![CDATA[I recently had to revisit my process for distributing applications over the air and since the process has changed slightly since Xcode v3 it seemed like a good idea to document it publicly in the event anyone else gets some benefit from it. The big change from XCode 3 is you no longer need to [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had to revisit my process for distributing applications over the air and since the process has changed slightly since Xcode v3 it seemed like a good idea to document it publicly in the event anyone else gets some benefit from it.</p>
<p>The big change from XCode 3 is you no longer need to fart with the entitlements.plist file and it's associated keys (get-task-allow, application-identifier etc).  XCode automatically set's these during the build process.</p>
<p>I'm assuming you have your Public/Private Certificates setup already, including the WWDR certificates provided by Apple.  If not refer the to documentation in the Portal and use KeyChain to make that happen.</p>
<p>There are basically 4 key parts to providing a version of your application for easy install/distribution via a web server:</p>
<ol>
<li>Setup the Provisioning Profiles</li>
<li>Configure the Schemes and Targets</li>
<li>Creating the Archive</li>
<li>Configuring the Website</li>
</ol>
<h2> Setup the Provisioning Profiles</h2>
<p>In order for your application to be installed on an end users device you need to gather their UDID and add it to the correct provisioning profile.  There are lots of ways of doing this, but my preferred way is to ask the user to connect their device and run iTunes.</p>
<p>iTunes provides a hidden mechanism for displaying the UDID.  Attach the device and select the Summary tab for the selected device, then click on the Serial number field, which should change to display 'Identifier'.  Have your users select and send this number to you.</p>
<p><a href="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-7.53.06-PM.png"><img class="aligncenter size-medium wp-image-33" title="iTunes - Get that UDID" src="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-7.53.06-PM-300x74.png" alt="" width="300" height="74" /></a></p>
<p>Once you have the UDID's  open your developer Portal and select Devices (top left).  Here you can either paste the UDID's in one at a time or import them from a file.  Select either 'Add Device' or 'Upload Devices' and enter your user's UDID's.<a href="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-7.52.53-PM.png"><img class="aligncenter size-full wp-image-34" title="Devices in the Portal" src="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-7.52.53-PM.png" alt="" width="189" height="221" /></a></p>
<p>&nbsp;</p>
<p>Once complete this will make those devices 'selectable' when you are creating/editing the provisioning profile.</p>
<p>The next step is to create an Application ID.  This ties the Profile and Applications you create for those devices in the profile together.  This is done by selecting 'App IDs' from the menu on the left and choosing 'New App ID'.</p>
<p><a href="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-10.54.30-PM.png"><img class="aligncenter size-medium wp-image-36" title="Create a New Application Bundle Identifier" src="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-10.54.30-PM-300x194.png" alt="" width="300" height="194" /></a></p>
<p>Give the App ID a very descriptive name so you can remember how it's connected to your applications.</p>
<p>Leave the Seed as 'Team ID' and use the suggested method of reverse domain name for the suffix (the part of the application identifier after the randomly generated characters).</p>
<p>I prefer to use WildCards for my Bundle ID's as I find it cleaner in XCode, especially if I'm managing multiple products and versions; but each to their own.   To set a wildcard App ID, simply put an asterisk at the end of the bundle identifier.</p>
<p>You should end up with something like 'XXXXXXXXX.com.companyname.*'.</p>
<h3>Provisioning Profile</h3>
<p>From here we need to select Provisioning and then 'Distribution' from the top row of tabs (the default is  'Developer').  Select an existing Distribution profile or click 'New Profile'.</p>
<p><a href="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-10.58.11-PM.png"><img class="aligncenter size-medium wp-image-38" title="Provisioning, the Distribution Profile" src="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-10.58.11-PM-300x73.png" alt="" width="300" height="73" /></a></p>
<p>Select 'Ad Hoc' as the distribution method - this is a very important step.  Now give the profile a name.   I prefer to be very explicit when naming my profiles to make it really obvious in XCode and during the Archive process which profile I'm using.  I prefer names such as 'Ad-Hoc Distribution Profile for Application XXXXXX' or 'AdHoc Distribution Profile for Test Group 1 on version 1.0.5'.</p>
<p><span style="color: #333399;"><em><strong>This process is now connecting the distribution certificate with the devices for specific application(s).  </strong></em></span></p>
<p>Once the profile is named you need to configure the profile to allow an application(s) to use it.   At this point we are connecting the bundle ID (App ID) with the profile with the certificate with the devices in the profile.</p>
<p>Now select the devices that you want your release to be made available to.    Click the Submit button.</p>
<p>You will notice that the page will show 'Pending' for this profile.  This process generally takes about 5 seconds to generate,  I normally wait the 5 seconds and click the 'Distribution' link at the top again.  Once completed the provisioning profile will show a 'Download' link.</p>
<p><a href="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-11.05.07-PM.png"><img class="aligncenter size-full wp-image-41" title="Download Profile" src="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-11.05.07-PM.png" alt="" width="300" height="96" /></a></p>
<p>Click to download the Provisioning profile.</p>
<p>Now we need to get this into profile into XCode.  Open XCode and select the Organizer from the Window menu (CMD+SHIFT+2).   Pick the 'Devices' section and select from the top left the 'Provisioning Profiles' link.<a href="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-11.07.08-PM.png"><img class="aligncenter size-medium wp-image-42" title="Organiser/Devices" src="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-11.07.08-PM-300x45.png" alt="" width="300" height="45" /></a></p>
<p>&nbsp;</p>
<p>Navigate back to finder and open the folder that you downloaded the profile into.  Select and drag the provisioning profile from the finder window into the Provisioning Profiles section in the Organizer.</p>
<p>Xcode will attempt to validate the profile to ensure you are allowed to use it and that it came from your dev account etc, which means you will most likely be prompted for you Apple Dev Account ID and it's password.  Plug those credentials in and let it do the validation.</p>
<p>Once validated the provisioning profile should show a green tick.  If it doesnt the most likely culprit will be your Private Key isn't setup correctly.</p>
<p><a href="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-11.08.10-PM.png"><img class="aligncenter size-full wp-image-43" title="Tick, Tick, Tick, Tick and Tick" src="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-11.08.10-PM.png" alt="" width="143" height="156" /></a></p>
<p>So far we have created our distribution provisioning profile, set the devices we want it to be made applicable to, specified the all important Bundle Identifier, downloaded and installed the profile into Xcode.  We are now ready to setup Xcode to make use of our newly installed friend.</p>
<h2>Configuring the Schemes and Targets</h2>
<p>Coming from the land of .Net and having a very simplistic build configuration I was initially confused by the terms Scheme, Target and Configuration.  It wasn't until I used a third party library that leveraged all three did I realise how powerful XCode really is (truth is I HAD to learn).</p>
<p>If I get my explanation wrong please forgive me,  I'm learning too, but in my head it seems right, so there <img src='http://blog.010.com.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Scheme</h3>
<p>Think of the Scheme as the parent container for the Target and Configuration.  The scheme controls what is built and what type of stuff is built depending on the action you take in Xcode.  There are built in Schemes (corresponding to Xcode actions) for Build, Run, Test, Profile, Analyze and Archive.  Each <em>scheme points</em> to a <em>specific configuration inside</em> the <em>Target</em> that is being built (for example Build, Run and Test are all using the Debug Configuration).</p>
<p><a href="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-11.12.10-PM.png"><img class="aligncenter size-full wp-image-45" title="Schemes and their standard Configurations" src="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-11.12.10-PM.png" alt="" width="167" height="212" /></a></p>
<p>&nbsp;</p>
<h3>Target</h3>
<p>I imagine this to be the same as saying 'I'm going to build this part of the app' or 'I'm going to build just the static library' or 'I want to build the entire application but include the debug symbols'.  Basically the target is the grouping of settings and compiler directives for the output type you select.</p>
<p><a href="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-11.15.56-PM.png"><img class="aligncenter size-medium wp-image-48" title="Build Targets" src="http://blog.010.com.au/wp-content/uploads/2012/04/Screen-Shot-2012-04-03-at-11.15.56-PM-300x42.png" alt="" width="300" height="42" /></a></p>
<h3>Configuration</h3>
<p>Each Target can have multiple configurations.  By default you are given 'Release' and 'Debug', but you can clone these or create them from scratch to suit your needs.   Remeber that each scheme can point to a specific configuration inside the Target so when you select the Scheme you are basically saying 'For whichever Target I pick to build, use these bunch of settings'.</p>
<p>So why is this important?  It's important because you need to setup and create all three of them in order to get the correct output.</p>
<p>&nbsp;</p>
<p>Stay tuned for Part Two:  Creating the Archive...</p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/zoz/davewraight/~4/8ywlaO9bobM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.010.com.au/ota-distribution-of-ios-apps-without-itunes-pt1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.010.com.au/ota-distribution-of-ios-apps-without-itunes-pt1/</feedburner:origLink></item>
		<item>
		<title>Seriously check out Mojito!</title>
		<link>http://feedproxy.google.com/~r/zoz/davewraight/~3/H6uEFob3uGU/</link>
		<comments>http://blog.010.com.au/seriously-check-out-mojito/#comments</comments>
		<pubDate>Tue, 03 Apr 2012 14:46:33 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.010.com.au/?p=7</guid>
		<description><![CDATA[I'm a big fan of ExtJS and have followed YUI for a very long time (since before ExtJS leveraged it), the whole concept behind Mojito is akin to a completely pluggable architecture that makes use of the best parts of Node.js and integrates (using the MVC pattern) with YUI 3. Check it out even just [...]]]></description>
			<content:encoded><![CDATA[<p>I'm a big fan of ExtJS and have followed YUI for a very long time (since before ExtJS leveraged it),  the whole concept behind Mojito is akin to a completely pluggable architecture that makes use of the best parts of Node.js and integrates (using the MVC pattern) with YUI 3.</p>
<p>Check it out even just for a look se:</p>
<p>http://developer.yahoo.com/cocktails/mojito/docs/intro/mojito_quicktour.html</p>
<img src="http://feeds.feedburner.com/~r/zoz/davewraight/~4/H6uEFob3uGU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.010.com.au/seriously-check-out-mojito/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.010.com.au/seriously-check-out-mojito/</feedburner:origLink></item>
		<item>
		<title>Universal App – One Price,  Two Code bases – Merging nightmare</title>
		<link>http://feedproxy.google.com/~r/zoz/davewraight/~3/0yPyyBpBWjc/</link>
		<comments>http://blog.010.com.au/universal-app-two-code-bases-one-price-merge-nightmare/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 14:02:22 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Landing Soon]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[landing soon]]></category>
		<category><![CDATA[universal app]]></category>

		<guid isPermaLink="false">http://blog.010.com.au/?p=23</guid>
		<description><![CDATA[I'm working on the iPhone release of Landing Soon and I've been struggling with how to release two apps from a single (currently) universal project.  I started the app with the intention of selling a single binary with both apps packaged inside it; however I came across a few issues with this approach. The problem [...]]]></description>
			<content:encoded><![CDATA[<p>I'm working on the iPhone release of <a title="Landing Soon" href="http://landingsoonapp.com" target="_blank">Landing Soon</a> and I've been struggling with how to release two apps from a single (currently) universal project.  I started the app with the intention of selling a single binary with both apps packaged inside it; however I came across a few issues with this approach.</p>
<p>The problem comes about when you upload a single package to iTunes Connect with both binaries;</p>
<ol>
<li>I can't set separate prices for each binary (iPhone/iPad)</li>
<li>It's not clear that when a sale is made of the universal that it's because they wanted it on the phone or for the iPad</li>
<li>There's no way to release different versions separately, if you update the iPad code it automatically updates the codebase for the iPhone.</li>
</ol>
<p>The first reason I would wont two products is simple - the iPad is my primary market and hence I'll be devoting significantly more resources on this platform (mostly because of screen size affords me the ability to create a much more simplified UI) and therefore I feel I can warrant a slightly higher price tag.</p>
<p>There are simply some things a larger screen size lets you do that the iPhones' screen cannot - the Landing Soon dashboards are a perfect example.</p>
<p>On the second point regarding "<em>who's downloading what</em>" - if I knew that people are buying the iPhone app over the iPad version then I'd have to rethink my allocation of effort.</p>
<p>Until this afternoon when someone suggested I use two <strong>build targets</strong> and restructure my build process I wouldn't have even thought it possible to get two separate products from the same code base - so that's what I'll be doing over the next week...</p>
<p>The iPhone version will most likely be a whole dollar cheaper than the iPad version but will contain most (80%) of the feature set.</p>
<img src="http://feeds.feedburner.com/~r/zoz/davewraight/~4/0yPyyBpBWjc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.010.com.au/universal-app-two-code-bases-one-price-merge-nightmare/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.010.com.au/universal-app-two-code-bases-one-price-merge-nightmare/</feedburner:origLink></item>
		<item>
		<title>Landing Soon has Landed!</title>
		<link>http://feedproxy.google.com/~r/zoz/davewraight/~3/1pBcoMYZsfc/</link>
		<comments>http://blog.010.com.au/landing-soon-has-landed/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 01:57:25 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Landing Soon]]></category>
		<category><![CDATA[landing soon]]></category>

		<guid isPermaLink="false">http://blog.010.com.au/?p=17</guid>
		<description><![CDATA[This morning our app Landing Soon for iPad went live and is ready for sale. Stay tuned for many exciting new features in the coming months - including an iPhone version. As usual we LOVE feedback.]]></description>
			<content:encoded><![CDATA[<p>This morning our app Landing Soon for iPad went live and is ready for <a title="Landing Soon" href="http://itunes.apple.com/us/app/landing-soon/id492693183?ls=1&amp;mt=8" target="_blank">sale</a>.</p>
<p>Stay tuned for many exciting new features in the coming months - including an iPhone version.</p>
<p>As usual we LOVE <a title="Feedback for Landing Soon." href="mailto:feedback@landingsoonapp.com">feedback</a>.</p>
<p><a title="Landing Soon" href="http://itunes.apple.com/us/app/landing-soon/id492693183?ls=1&amp;mt=8" target="_blank"><img class="aligncenter size-full wp-image-18" title="Landing Soon Applicaton icon - iPad version" src="http://blog.010.com.au/wp-content/uploads/2012/01/Icon-72.png" alt="" width="72" height="72" /></a></p>
<img src="http://feeds.feedburner.com/~r/zoz/davewraight/~4/1pBcoMYZsfc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.010.com.au/landing-soon-has-landed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.010.com.au/landing-soon-has-landed/</feedburner:origLink></item>
		<item>
		<title>Landing Soon hopefully Landing Soon</title>
		<link>http://feedproxy.google.com/~r/zoz/davewraight/~3/Qt61PcRE-Bw/</link>
		<comments>http://blog.010.com.au/landing-soon-hopefully-landing-soon/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 15:27:41 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[landing soon]]></category>

		<guid isPermaLink="false">http://blog.010.com.au/?p=3</guid>
		<description><![CDATA[My latest app is an iPad application that captures project status information for activities, software releases or projects that that you are working on. I had originally planned a much larger feature set for the first release but after reading two Agile/Scrum articles I decided to stick with the philosophy 'release early, release often'. As [...]]]></description>
			<content:encoded><![CDATA[<p>My latest app is an iPad application that captures project status information for activities, software releases or projects that that you are working on.</p>
<p>I had originally planned a much larger feature set for the first release but after reading two Agile/Scrum articles I decided to stick with the philosophy 'release early, release often'.</p>
<p>As much as I like WordPress (and I do) I ditched my previous installation and hand coded the Landing Soon website - <a title="Landing Soon" href="http://www.landingsoonapp.com" target="_blank">www.landingsoonapp.com</a></p>

<a href='http://blog.010.com.au/landing-soon-hopefully-landing-soon/feedback-email/' title='Feedback Email'><img width="150" height="150" src="http://blog.010.com.au/wp-content/uploads/2012/01/Feedback-Email-150x150.png" class="attachment-thumbnail" alt="Feedback Email" title="Feedback Email" /></a>
<a href='http://blog.010.com.au/landing-soon-hopefully-landing-soon/share-flight-data/' title='Share Flight Data'><img width="150" height="150" src="http://blog.010.com.au/wp-content/uploads/2012/01/Share-Flight-Data-150x150.png" class="attachment-thumbnail" alt="Share Flight Data" title="Share Flight Data" /></a>
<a href='http://blog.010.com.au/landing-soon-hopefully-landing-soon/flight-mini-dashboard/' title='Flight Mini Dashboard'><img width="150" height="150" src="http://blog.010.com.au/wp-content/uploads/2012/01/Flight-Mini-Dashboard-150x150.png" class="attachment-thumbnail" alt="Flight Mini Dashboard" title="Flight Mini Dashboard" /></a>

<img src="http://feeds.feedburner.com/~r/zoz/davewraight/~4/Qt61PcRE-Bw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.010.com.au/landing-soon-hopefully-landing-soon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.010.com.au/landing-soon-hopefully-landing-soon/</feedburner:origLink></item>
	</channel>
</rss>

