<?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/"
	>

<channel>
	<title>Tupil Code Blog &#187; github</title>
	<atom:link href="http://blog.tupil.com/tag/github/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tupil.com</link>
	<description>(Get up early, code often)</description>
	<lastBuildDate>Fri, 27 Aug 2010 10:50:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>MoProPro: a single command to add testers to iPhone provisioning profiles</title>
		<link>http://blog.tupil.com/mopropro-a-single-command-to-add-testers-to-iphone-provisioning-profiles/</link>
		<comments>http://blog.tupil.com/mopropro-a-single-command-to-add-testers-to-iphone-provisioning-profiles/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 19:38:33 +0000</pubDate>
		<dc:creator>Eelco Lempsink</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.tupil.com/?p=96</guid>
		<description><![CDATA[Distributing iPhone applications to testers requires the developer to sign their code using a combination of a (ad hoc) distribution certificate and a mobile provisioning profile, which explicitly contains the device ids (UDIDs) of all your testers. Introducing MoProPro MoProPro automates as much as possible of a very specific, but for iPhone developers very common [...]]]></description>
			<content:encoded><![CDATA[<p>Distributing iPhone applications to testers requires the developer to sign their code using a combination of a (ad hoc) distribution certificate and a mobile provisioning profile, which explicitly contains the device ids (UDIDs) of all your testers.</p>
<h2>Introducing MoProPro</h2>
<p><a href="http://github.com/tupil/MoProPro">MoProPro</a> automates as much as possible of a very specific, but for iPhone developers very common and tedious, task: adding tester&#8217;s UDIDs to an existing ad hoc distribution provisioning profile and downloading the new version of the profile.  While this doesn&#8217;t sound that hard, compare &#8216;Before&#8217; and &#8216;After&#8217;</p>
<p>Both the &#8216;Before&#8217; and &#8216;After&#8217; scenario assume you&#8217;ve already set up your app, a distribution certificate, a mobile provisioning profile and acquired the UDID &#8217;1234567890DEADBEEFCOFFEE098766654321ABCD&#8217; that you want to add to your testers&#8230;</p>
<h2>Before</h2>
<ol>
<li>Go to the iPhone Dev Center website</li>
<li>Click login</li>
<li>Fill in credentials and login</li>
<li>Go to the iPhone Developer Program Portal</li>
<li>Go to the Devices page</li>
<li>Click on Add Devices</li>
<li>Enter and name the UDID, submit</li>
<li>Go to the Provisioning page</li>
<li>Click on Distribution</li>
<li>Find the right (ad hoc) provisioning profile for your app</li>
<li>Click on Edit, click on Modify</li>
<li>Check all boxes of the newly added devices, submit</li>
<li>Wait a bit, refresh the page, until the Download button appears again</li>
<li>Download the new provisioning profile</li>
</ol>
<p>Most of this process is pretty mechanical and boring.  Also, most of this process could be smoother if Apple had made a better web interface, based on common use-cases, which will hopefully happen somewhere in the future.  But, in the meantime, and for people that just like the command prompt, witness &#8216;After&#8217;:</p>
<h2>After</h2>
<p>Using the Terminal, go your project&#8217;s directory (containing the <code>Info.plist</code> file, and a <code>.mopropro</code> file containing the ADC credentials for this project) and run:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ mopropro 1234567890DEADBEEFCOFFEE098766654321ABCD <span style="color: #ff0000;">&quot;Name for Device&quot;</span>
Saved new provisioning profile to <span style="color: #ff0000;">'Example_Ad_Hoc.mobileprovision'</span>
$</pre></div></div>

<p>That&#8217;s it.</p>
<p>If you add the <code>-v</code> switch, you can see (more or less) what it does, for example:</p>
<pre>
Validating input... Ok.
Getting App Id... com.example.app
Logging in... Ok.
Looking up existing devices... Done.
Adding 1 device... Submitted.
Looking up provisioning profile...
 - Found 5 profiles
 - Found 2 matching profiles
 - Found Ad Hoc profile
 - Adding devices
Saving profile with new devices... Ok.
Waiting a bit while the new profile is generated... Ok.
Trying to retrieve new profile... Got it!
Saved new provisioning profile to 'Example_Ad_Hoc.mobileprovision'
</pre>
<p>The script has some more options and can also accept multiple devices.  All &#8216;documentation&#8217; can be found in the <a href="http://github.com/tupil/MoProPro/blob/6ba12ecaa9ad21b6386d4f5a26ee8a58342ca555/README.md">README</a> in <a href="http://github.com/tupil/MoProPro/tree/master">MoProPro&#8217;s repository on GitHub</a>. Enjoy!</p>
<h2>About</h2>
<p>MoProPro uses the excellent <a href="http://mechanize.rubyforge.org/mechanize/">WWW::Mechanize</a> library to automate using the iPhone Dev Center website. The <a href="http://plist.rubyforge.org/">Plist</a> library is used for getting the application identifier out of the <code>Info.plist</code> file.  <a href="http://www.yaml.org/">YAML</a> is used as the format for the configuration and input files.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tupil.com/mopropro-a-single-command-to-add-testers-to-iphone-provisioning-profiles/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
