<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Converting iPhone applications from pay to in app purchases</title>
	<atom:link href="http://blog.logichigh.com/2011/05/26/converting-applications-to-in-app-purchase/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.logichigh.com/2011/05/26/converting-applications-to-in-app-purchase/</link>
	<description>Logic High Software Blog</description>
	<lastBuildDate>Thu, 04 Apr 2013 09:59:44 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: Copter</title>
		<link>http://blog.logichigh.com/2011/05/26/converting-applications-to-in-app-purchase/comment-page-1/#comment-1260</link>
		<dc:creator>Copter</dc:creator>
		<pubDate>Sun, 27 May 2012 10:51:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.logichigh.com/?p=253#comment-1260</guid>
		<description><![CDATA[A new message was posted in the thread &quot;Add IAP to an existing Application&quot; by PeterKramer:



Message: 

A simple approach is to leave the paid App as an App and create a new free App with IAP (2 App approach).  Another approach is to use the keychain (1 App approach).  Here is a step-by-step:
 
2 App approach: 
- first upgrade the paid app so that it can do an &quot;openURL&quot; - look up URL Schemes described in:  https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006728
  You will be making an entry in the info.plist that indicates that the paid App can execute a URL Scheme of your naming.  It will be a dummy URL for example - &quot;DUMMYURL&quot; - it won&#039;t really do anything.
 
-  then, in the free App, search for whether there is an App on the device that can openURL for DUMMYURL.  You will have a line of code like:
    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@&quot;DUMMYURL:&quot;]]) upgrade=YES;  
 
- and finally, tell the users of the paid App that they can use the free App and get upgraded for free if they just keep an upgraded version of the paid App on their iPhone.  Also, be sure to tell the users of the free App that before they pay for the upgrade, if they bought the paid version all they have to do is install it on their device and the free version will upgrade itself for free.
 
 
1 App Approach:
- first upgrade the Paid App so that it writes on the keychain (search keychainWrapper for code) a stamp indicating that it was on the device.  You could use an NSUserDefault but it does not leave as indelible a mark (i.e. it is lost when the App is deleted from the device - the keychain stamp is not).  
 
-  then, a few weeks later, downgrade the App to free with IAP.  Have that version of the App search for the keychain stamp that indicates the earlier version was on the device.  If so, upgrade.
 
The problem with this approach is that some users will not upgrade to the middle version but they will downgrade to the free App without ever getting their keychain stamped.  Tell those users to email you with a receipt or a good explanation about how they &#039;deserve&#039; an upgrade.  Have them email from within the App.  Stamp their email to you with a random number that they also load into their keychain.  Then send them back a key to unlock the IAP.  That key could be their random number (in their keychain and in the email) multiplied by a factor like .8567 .  Their App can see if the factor is correct and if it is, upgrade the App.  That way they can&#039;t tell their friends how to get a free IAP upgrade.]]></description>
		<content:encoded><![CDATA[<p>A new message was posted in the thread &#8220;Add IAP to an existing Application&#8221; by PeterKramer:</p>
<p>Message: </p>
<p>A simple approach is to leave the paid App as an App and create a new free App with IAP (2 App approach).  Another approach is to use the keychain (1 App approach).  Here is a step-by-step:</p>
<p>2 App approach:<br />
- first upgrade the paid app so that it can do an &#8220;openURL&#8221; &#8211; look up URL Schemes described in:  <a href="https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006728" rel="nofollow">https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006728</a><br />
  You will be making an entry in the info.plist that indicates that the paid App can execute a URL Scheme of your naming.  It will be a dummy URL for example &#8211; &#8220;DUMMYURL&#8221; &#8211; it won&#8217;t really do anything.</p>
<p>-  then, in the free App, search for whether there is an App on the device that can openURL for DUMMYURL.  You will have a line of code like:<br />
    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"DUMMYURL:"]]) upgrade=YES;  </p>
<p>- and finally, tell the users of the paid App that they can use the free App and get upgraded for free if they just keep an upgraded version of the paid App on their iPhone.  Also, be sure to tell the users of the free App that before they pay for the upgrade, if they bought the paid version all they have to do is install it on their device and the free version will upgrade itself for free.</p>
<p>1 App Approach:<br />
- first upgrade the Paid App so that it writes on the keychain (search keychainWrapper for code) a stamp indicating that it was on the device.  You could use an NSUserDefault but it does not leave as indelible a mark (i.e. it is lost when the App is deleted from the device &#8211; the keychain stamp is not).  </p>
<p>-  then, a few weeks later, downgrade the App to free with IAP.  Have that version of the App search for the keychain stamp that indicates the earlier version was on the device.  If so, upgrade.</p>
<p>The problem with this approach is that some users will not upgrade to the middle version but they will downgrade to the free App without ever getting their keychain stamped.  Tell those users to email you with a receipt or a good explanation about how they &#8216;deserve&#8217; an upgrade.  Have them email from within the App.  Stamp their email to you with a random number that they also load into their keychain.  Then send them back a key to unlock the IAP.  That key could be their random number (in their keychain and in the email) multiplied by a factor like .8567 .  Their App can see if the factor is correct and if it is, upgrade the App.  That way they can&#8217;t tell their friends how to get a free IAP upgrade.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Badpirate</title>
		<link>http://blog.logichigh.com/2011/05/26/converting-applications-to-in-app-purchase/comment-page-1/#comment-1143</link>
		<dc:creator>Badpirate</dc:creator>
		<pubDate>Mon, 22 Aug 2011 02:17:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.logichigh.com/?p=253#comment-1143</guid>
		<description><![CDATA[In app purchases can only be made once from the same account email address... (Much like buying apps), the second time, you will be informed that you have already purchased the upgrade, and you will get it again at no cost.  Yar.]]></description>
		<content:encoded><![CDATA[<p>In app purchases can only be made once from the same account email address&#8230; (Much like buying apps), the second time, you will be informed that you have already purchased the upgrade, and you will get it again at no cost.  Yar.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Diorex</title>
		<link>http://blog.logichigh.com/2011/05/26/converting-applications-to-in-app-purchase/comment-page-1/#comment-1142</link>
		<dc:creator>Diorex</dc:creator>
		<pubDate>Sun, 21 Aug 2011 22:40:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.logichigh.com/?p=253#comment-1142</guid>
		<description><![CDATA[Just downloaded PirateWalla and am loving it, but when I grabbed it to put on my iPad, I am being asked if I wil accept another $4.99 charge.

Not familiar with how inapp purchases work - can I use it on my iPad without paying again or is it an upgrade for each unique device? 

Ehen I get my next iPhone will I have to buy again?]]></description>
		<content:encoded><![CDATA[<p>Just downloaded PirateWalla and am loving it, but when I grabbed it to put on my iPad, I am being asked if I wil accept another $4.99 charge.</p>
<p>Not familiar with how inapp purchases work &#8211; can I use it on my iPad without paying again or is it an upgrade for each unique device? </p>
<p>Ehen I get my next iPhone will I have to buy again?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Horton</title>
		<link>http://blog.logichigh.com/2011/05/26/converting-applications-to-in-app-purchase/comment-page-1/#comment-927</link>
		<dc:creator>Kyle Horton</dc:creator>
		<pubDate>Thu, 16 Jun 2011 16:44:16 +0000</pubDate>
		<guid isPermaLink="false">http://blog.logichigh.com/?p=253#comment-927</guid>
		<description><![CDATA[Kevin, it appears to be available now (even though not showing on the iTunes app page yet).  Thanks again for the great update!  The new &#039;moving location&#039; capability is great!]]></description>
		<content:encoded><![CDATA[<p>Kevin, it appears to be available now (even though not showing on the iTunes app page yet).  Thanks again for the great update!  The new &#8216;moving location&#8217; capability is great!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Lohman</title>
		<link>http://blog.logichigh.com/2011/05/26/converting-applications-to-in-app-purchase/comment-page-1/#comment-926</link>
		<dc:creator>Kevin Lohman</dc:creator>
		<pubDate>Wed, 15 Jun 2011 17:36:36 +0000</pubDate>
		<guid isPermaLink="false">http://blog.logichigh.com/?p=253#comment-926</guid>
		<description><![CDATA[Thanks!  I&#039;m peeved, but it seems that the fact that the App became available before the In App Purchase is a quirk of Apple&#039;s... Seems sometimes those features can lag product release by up to 72 hours... Doesn&#039;t make for a good user experience :(  I&#039;m working with them as best I can, but there is no phone support, only email.]]></description>
		<content:encoded><![CDATA[<p>Thanks!  I&#8217;m peeved, but it seems that the fact that the App became available before the In App Purchase is a quirk of Apple&#8217;s&#8230; Seems sometimes those features can lag product release by up to 72 hours&#8230; Doesn&#8217;t make for a good user experience <img src='http://blog.logichigh.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />   I&#8217;m working with them as best I can, but there is no phone support, only email.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Horton</title>
		<link>http://blog.logichigh.com/2011/05/26/converting-applications-to-in-app-purchase/comment-page-1/#comment-925</link>
		<dc:creator>Kyle Horton</dc:creator>
		<pubDate>Wed, 15 Jun 2011 14:54:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.logichigh.com/?p=253#comment-925</guid>
		<description><![CDATA[Love the latest update (3.0.1)!  Can&#039;t wait for the in-app purchase to be released!]]></description>
		<content:encoded><![CDATA[<p>Love the latest update (3.0.1)!  Can&#8217;t wait for the in-app purchase to be released!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
