Hvordan jeg klarer å bygge en Lite vs Betalt versjon av en iPhone app?

stemmer
62

Jeg begynner å komme til det punktet hvor jeg vil vurdere å bygge et lite versjon av min iPhone app. Jeg har funnet et par ting på nettet som snakker om prosessen litt, nemlig:

http://developer.apple.com/tools/XCode/XCodeprojects.html

http://www.pacificspirit.com/blog/2009/01/27/building_for_multiple_iphone_targets_in_xcode

Det jeg er spesielt interessert i er å forenkle prosessen med å håndtere hvilke filer som er inkludert i de ulike versjonene av min app som jeg stadig endre og forbedre min betalt for versjonen.

Publisert på 14/02/2009 klokken 18:03
kilden bruker
På andre språk...                            


7 svar

stemmer
81

Opprinnelige svaret fra dagene før i app kjøp. Det riktige svaret er nå å sende en enkel binær og tilby betalt versjon gjennom i app oppgraderinger . Det er litt mer kode, men det er en enkelt forsendelse og konverteringsfrekvensen vil trolig bli bedre.

Men hvis du fortsatt ønsker å versjoner av programmet:

Xcode har god støtte for flere mål.

Fra prosjektet menyen velg "New Target ...". Legg til en annen iPhone kjørbar (Cocoa Touch Application) kan du angi deretter på en resouce av ressursgrunnlaget som er inkludert i målet. Dette kan inkludere bare kompilering bestemt kode inn i betalt versjon.

Du kan få rask visuell tilbakemelding på hva som er og ikke er inkludert i den nåværende målet ved å høyreklikke på "Grupper og filer" -listen header (topp LHS) og aktivere Target medlemskap.

Du bytter mellom å bygge ulike mål på samme måte som du bytter mellom bygningen for Simulator eller iPhone.

Hvis du vil angi at bygge gang hvordan en bestemt klasse oppfører du kan gjøre to ting - inkluderer to versjoner av klassen som hver er bygget for sine respektive mål eller, kan du angi en byggetid flagg for pre-prosessor. Velg Target i "grupper og filer" liste deretter "få info" på det målet. Gå til fanen bygge og søke etter "preprocess". Du skal se et element som heter "Preprocessor makroer" legg LITEtil lite mål, og på samme måte legge PAIDtil betalt mål.

Thein i kildefilene du kan bestemme ved kompilering hvilken versjon du kompilere for bruk #ifdef LITEetc.

Gå enda lenger, kan du sette en global flagg eller AppDelegate medlem variabel basert på # ifdef LITE og endre atferd under kjøring for Lite og betalte apps. Jeg er ikke sikker på at jeg ser verdien i at selv.

Svarte 14/02/2009 kl. 18:59
kilden bruker

stemmer
24

Som utvikler du ønsker å skrive minst koden mulig (mindre bugs, mindre tid). Som bygge versjoner divergere du må investere mer arbeid og egne tester.

Med mindre du gjør en dyr hacker verktøy du kanskje vurdere å holde forskjellen så enkelt som mulig - bare noen skjulte preferanser eller innstillinger. Denne måten de fleste av kontroller og tester vil gjøre det samme arbeidet i både bygger, vil svært lite kode være annerledes. Nøkkelen bekymring er ikke å belaste deg selv som en utvikler.

Grunnen til å ha avvikende bygger er å sikre at Free ikke kan bli hacket inn i en "betalt" versjon. Folk som ville prøve og omgå en slik enkel begrensning er først og fremst en sub satt av dem som ville jailbreak sine telefoner. Uansett hva du gjør vil du ikke få pengene sine under noen omstendigheter annet enn de er så imponert at de kjøper det bare for å vise takknemlighet.

Svarte 14/02/2009 kl. 21:30
kilden bruker

stemmer
7

Skaperen av "Flower Garden" detaljer fordeler / ulemper ved ulike tilnærminger til å skape en lite versjon her:

http://gamesfromwithin.com/from-full-to-lite-in-under-an-hour

Svarte 18/02/2009 kl. 00:09
kilden bruker

stemmer
3

Jeg fant suksess med:

Tutorial - Samme Xcode Prosjekt Opprette flere produkter for iPhone http://adeem.me/blog/2009/04/18/tutorial-same-xcode-project-create-multiple-products-for-iphone/

Den dekker mye av det som Roger Nolan nevnt i sitt svar på spørsmålet, men trinn-for-trinn med skjermbilder.

Den lar deg bruke C # ifdef er å inkludere eller ekskludere funksjonaliteten i programmet ditt.

Noen av detaljene var ikke helt riktig - på grunn av forskjeller i Xcode jeg er sikker på - men det var ikke så vanskelig å finne ut den riktige / ny måte å gjøre hvert trinn.

MERK: Du må gå til Apple og få en ny app ID for Lite-versjonen av appen. Trinnene i opplæringen vil skape en kopi av Info.plist fil, som du sannsynligvis endre navn til noe sånt infoLite.plist - i denne filen du trenger for å endre "Bundle Identifier" for å matche den nye AppID .

Svarte 14/09/2009 kl. 04:35
kilden bruker

stemmer
2

Med iPhone 3.0, kan du bruke i appen i stedet og la det å låse opp full funksjonalitet uten å måtte gjøre mer enn én app. Jeg tror også at dette vil unngå at folk får dette gratis, men jeg er ikke så sikker på det.

Svarte 13/11/2009 kl. 22:28
kilden bruker

stemmer
1

Jeg brukte en git gren. Jeg forgrenet min viktigste app og gjort noen tilpasninger for å deaktivere en haug med innhold. Nå jobber jeg hovedsakelig i master gren og bytte over til Lite og flette inn senest ved store utbygginger oppstår. Fungerer veldig bra.

Svarte 14/02/2009 kl. 19:38
kilden bruker

stemmer
0

Jo bedre tilnærming er å ha bare et enkelt prosjekt, med flere mål i stedet - en for hver versjon av appen. Så hva er mål: flere mål

Svarte 03/06/2015 kl. 09:56
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more