PDA

View Full Version : Managing xcode project paid vs free?




mrl72
Feb 1, 2011, 09:20 AM
I'm just about done with the development of my app and now want to start looking at incorporating ads into what will become my free version. What is the best way to manage the projects in xcode? Do you create another project that has the various changes for the free version, or do you build this into the normal project and take care of it at run-time? Obviously I don't want to have to manage two seperate projects with only small changes in code between them. Interested to know how others do it.

Thanks!



nickculbertson
Feb 1, 2011, 10:05 AM
I like to start a new project for the free version. It makes it easier to keep track of updates. You could zip the project folder, then unzip it to duplicate the file, and then edit that new project the way you want it.

Nick

ulbador
Feb 1, 2011, 10:09 AM
Create a separate target in Xcode. There is no reason to try to maintain two code bases.

http://www.codza.com/free-iphone-app-version-from-the-same-xcode-project

dejo
Feb 1, 2011, 11:01 AM
That's what we did for CraigsHarvest Lite vs. CraigsHarvest. The trick was making sure that all files and such were associated with each target (as needed).

mrl72
Feb 1, 2011, 11:10 AM
Thanks all. So lets say I have a method that displays stuff on the screen and then in my free version it puts an ad at the bottom but in the paid version it doesn't, even though xcode is going to build two seperate targets do I just have some kind of condition in my shared method ie. if target is free version then show ads etc.?

dejo
Feb 1, 2011, 11:14 AM
Thanks all. So lets say I have a method that displays stuff on the screen and then in my free version it puts an ad at the bottom but in the paid version it doesn't, even though xcode is going to build two seperate targets do I just have some kind of condition in my shared method ie. if target is free version then show ads etc.?
Read the blog ulbador linked to. It explains how to use "Other C Flags" and #ifdefs to allow version-specific code.

balamw
Feb 1, 2011, 11:27 AM
I'm just curious. Why two apps instead of removing ads or adding features via in-app purchases.

B

North Bronson
Feb 1, 2011, 11:37 PM
I'm just curious. Why two apps instead of removing ads or adding features via in-app purchases.

B

It sounds like Apple iAds are only live in about five countries. Releasing a free version of the application in a country that isn't displaying ads might not fit into the scheme of things; a paid application might be released only in countries that don't support ads.

I agree that removing the ads with in-app purchase is a good call for the countries that are displaying ads.

dejo
Feb 2, 2011, 12:10 AM
Just FYI: iAds are not the only ad service one can use. :)

balamw
Feb 2, 2011, 07:49 AM
Just FYI: iAds are not the only ad service one can use. :)

dejo, you have CraigsHarvest and CraigsHarvest Lite. What are the differences between the two apps and why did you choose two apps instead of unlocking the features via in-app purchase.

Just curious.

B

mrl72
Feb 2, 2011, 07:50 AM
I looked at in app-purchases and thought it a little too drawn out for what I wanted to do (lots of set up and planning by the looks of it). I mean, if I can determine at run-time what target I am (free or paid) I'll just display an ad versus not. Or if I want to disable some features that's easy to do with one line of code ie if (free) then feature.hidden etc. And it looks fairly simple to do via the info ulbador provided (thanks).

Is Admob supported in all countries?

balamw
Feb 2, 2011, 08:19 AM
I mean, if I can determine at run-time what target I am (free or paid) I'll just display an ad versus not.
These are compilation targets, so the compiler will make the app one way for free and another way for paid.

Someone had posted a simple tutorial along those lines for disabling ads via in-app purchase and it did basically boil down to

if not purchased display ad

B

dejo
Feb 2, 2011, 09:55 AM
dejo, you have CraigsHarvest and CraigsHarvest Lite. What are the differences between the two apps and why did you choose two apps instead of unlocking the features via in-app purchase.

Just curious.

B
When we began working on the implementation of the lite version, in-app purchasing was not yet available, or even rumored. This was way back in the 2.x days. So, we decided to simply distribute a separate version, with limited features, including only being able to search one or two locations, one or two subcategories, and bookmarking only up to five favorite postings. Also, at that time, the market for craigslist apps was such that most were priced higher than 99, so a lite version did not necessarily have to be free.

Had in-app purchasing been available back then, we would've been faced with a dilemma, since a full-blown CraigsHarvest had already been released: do we distribute a single version, with limited features, and use in-app purchase to unlock the full potential? We figured such a move would probably irk current customers, who had paid full price, and would not be happy with having to make another purchase to unlock what they already had. And we could find no way to "gift" them that upgrade. I think nowadays we have more options for how to handle this (and some better foresight probably would've helped too).

My other popular app, a.k.a., started as a free app, so when in-app purchasing came along, it was much easier to implement an ad-free upgrade purchase option.

Hope that helps, B.

ulbador
Feb 2, 2011, 10:23 AM
Had in-app purchasing been available back then, we would've been faced a dilemma, since a full-blown CraigsHarvest had already been released: do we distribute a single version, with limited features, and use in-app purchase to unlock the full potential? We figured such a move would probably irk current customers, who had paid full price, and would not be happy with having to make another purchase to unlock what they already had. And we could find no way to "gift" them that upgrade. I think nowadays we have more options for how to handle this (and some better foresight probably would've helped too).

There is also a marketing question to be asked when trying to determine between these two methods.

In one scenario, many users will download the free version, check it out and then decide whether or not to buy it. This means there will be many downloaders, but (potentially) few buyers. It also largely eliminates a key profit center, impulse buyers.

On the other hand, with a prepaid app, you will have fewer downloads overall. At the same time, many of these people will be impulse buyers, or those who saw your app and went "Ooo, that looks cool", only to be disappointed later. With the in-app model, this group is eliminated because they can largely see the functionality of the app beforehand.

Which one of these will be more successful is basically hard to tell. Sure, in the in-app model you get a ton of eyeballs on your product. At the same time those same eyeballs will be identifying and announcing any potential flaws. On the other hand, when the user prepurchases, they are unable to see the potential program or flaws with your interface beforehand, so once they have purchased and are invested in it, they are more likely to "give it the old college try" before immediately discounting and potentially badmouthing it.

mrl72
Feb 2, 2011, 10:34 AM
Some good points. It's amazing to think that such thought by a user goes into whether or not to pony up 99cents for an app that took months to code :)

I think it goes without saying you need a free version and paid version in order to gain some traction as well as make some money, especially in a landscape that is ripe with competition. And as for "version 1", is it even worth considering only releasing a free version in order to get your app into the hands of many so you can iron out any issues? And then build more features into 1.1 which are un-lockable via an in-app purchase? So in other words release a single app with ads, then in 1.1 add the ability to remove the adds for a fee. Do you think that will alienate the users? I guess the risk is that some might be turned away from the get go if they see the ads without the ability to turn them off.

balamw
Feb 2, 2011, 10:37 AM
There is also a marketing question to be asked when trying to determine between these two methods.
Yeah, I'm sure that another factor is that should your app become popular you might only appear on "Free App" lists and not "Paid Apps" even though many of your users are actually paying customers. (Like evernote).

I guess the risk is that some might be turned away from the get go if they see the ads without the ability to turn them off.

I find most iPhone ads quite unobtrusive, and click through fairly often as a way of supporting folks who release free apps I use via this model. Unless it is an app that I really use often, I am unlikely to pay to disable ads.

B

mrl72
Feb 14, 2011, 11:47 AM
I finally got around to implementing the solution here: http://www.codza.com/free-iphone-app...-xcode-project but something weird is going on. When I run the free version on the simulator it starts and then executes the other target instead.

Any idea why it would be doing this?

Cheers.

Edit: Some extra info: If I look in the iPhone Simulator folder the new target is writing everything to the other target's folder even though it at first creates a separate folder in Applications folder.