Cum pot gestiona construirea unei Lite vs versiune plătită unei aplicații pentru iPhone?

voturi
62

Încep să ajung la punctul în care vreau să ia în considerare construirea unei Lite versiune a aplicației mele pentru iPhone. Am găsit câteva lucruri de pe web care vorbesc despre procesul un pic, și anume:

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

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

Ceea ce Sunt interesat în mod special este simplificarea procesului de gestionare a fișierelor care sunt incluse în diferitele versiuni ale aplicației mele ca am modifica în mod continuu și de a spori meu plătit pentru versiunea.

Întrebat 14/02/2009 la 19:03
sursa de către utilizator
În alte limbi...                            


7 răspunsuri

voturi
81

Răspuns original este de zile înainte în achiziția unei aplicații. Răspunsul corect este acum de a livra un singur binar și oferă versiunea plătită prin intermediul în upgrade - uri de aplicații . Este puțin mai mult cod , dar este un singur transport și rata de conversie va fi , probabil , mai bine.

Cu toate acestea, dacă totuși doriți să versiuni ale aplicației:

Xcode are suport bun pentru mai multe obiective.

Din meniul proiectului selectați „New Target ...“. Adăugați un alt executabil iPhone (Cocoa Touch Application) puteți specifica apoi pe o Resouce de bază de resurse care elemente sunt incluse în țintă. Aceasta poate include doar compilarea anumit cod în versiunea plătită.

Puteți obține feedback vizual rapid asupra a ceea ce este și nu este inclus în ținta curentă făcând clic dreapta pe „Grupuri și fișiere“ lista de antet (scala din stânga sus) și membru țintă puterea dată.

Comutați între construirea obiective diferite în același mod ca și comutarea între clădire pentru Simulator sau iPhone.

Pentru a specifica la momentul construi modul în care o anumită clasă se comportă poți face două lucruri - includ două versiuni ale clasei care sunt fiecare construite pentru ținta respectivă sau, puteți seta un steag timp construi pentru pre-procesor. Selectați țintă din lista „Grupuri și fișiere“ , apoi „obține informații“ cu privire la acest obiectiv. Du - te la tab - ul construi și de căutare pentru „preprocesa“. Ar trebui să vedeți un articol numit „Preprocessor Macrocomenzi“ adăugați LITEla țintă Lite și în același mod adăuga PAIDla țintă plătit.

Thein în fișierele sursă puteți determina la momentul compilarii ce versiune compilarea pentru utilizarea #ifdef LITEetc.

Mergând chiar mai departe, ați putea stabili un steag globală sau variabilă membru AppDelegate bazat pe LITE # ifdef și schimba comportamentul în timpul rulării pentru Lite și aplicații plătite. Nu sunt sigur că văd în valoare că, deși.

Publicat 14/02/2009 la 19:59
sursa de către utilizator

voturi
24

Ca dezvoltator pe care doriți să scrie cel mai mic posibil codul (mai puțin bug-uri, mai puțin timp). Deoarece versiunile construi diverg va trebui să investească mai mult de lucru și teste separate.

Dacă nu se face un instrument scump hacker ar putea lua în considerare păstrarea diferenței cât mai simplu posibil - trebuie doar anumite preferințe ascunse sau setări. Astfel, majoritatea controalelor și testelor vor face aceeași muncă în ambele construiește, foarte puțin cod va fi diferit. Preocuparea cheie nu este de a te povară ca un dezvoltator.

Motivul pentru a avea divergente se bazează este de a se asigura că liberă nu poate fi spart într-un „plătit“ versiune. Oamenii care vor încerca și eludează o astfel de limitare simplu, sunt în primul rând un sub set de cei care ar jailbreak telefoanele lor. Indiferent de ceea ce faci tu nu va primi banii lor în orice condiții, altele decât acestea sunt atât de wowed le cumpără doar pentru a arăta apreciere.

Publicat 14/02/2009 la 22:30
sursa de către utilizator

voturi
7

Creatorul „Flower Garden“ detalii argumente pro / contra de abordări diferite pentru a crea o versiune lite aici:

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

Publicat 18/02/2009 la 01:09
sursa de către utilizator

voturi
3

Am găsit cu succes:

Tutorial - Proiect Xcode Same crea produse multiple pentru iPhone http://adeem.me/blog/2009/04/18/tutorial-same-xcode-project-create-multiple-products-for-iphone/

Aceasta acoperă o mare parte din ceea ce a menționat Roger Nolan în răspunsul său la întrebarea, dar pas cu pas, cu capturi de ecran.

Acesta vă permite să utilizați C # ifdef de a include sau a exclude funcționalitatea în aplicație.

Unele dintre detaliile nu au fost tocmai corect - din cauza diferențelor de Xcode Sunt sigur - dar nu a fost prea greu pentru a descoperi modul corect / nou pentru a face fiecare pas.

NOTA: Va trebui să mergi la Apple și de a obține un nou cod de aplicație pentru versiunea Lite a aplicației. Pașii prezentați în tutorial va crea o copie a fișierului info.plist, pe care îl va redenumi probabil ceva de genul infoLite.plist - în acest fișier va trebui să modificați „identificatorul de pachet“ pentru a se potrivi acest nou APPID .

Publicat 14/09/2009 la 05:35
sursa de către utilizator

voturi
2

Cu iPhone 3.0, puteți utiliza achizițiile în aplicație în loc și să permită ca pentru a debloca funcționalitatea completă, fără a fi nevoie să facă mai mult de o aplicație. De asemenea, cred că acest lucru va evita obtinerea de oameni acest lucru gratuit, dar nu sunt la fel de sigur de asta.

Publicat 13/11/2009 la 23:28
sursa de către utilizator

voturi
1

Am folosit o ramură Git. Am ramificat meu app principal și a făcut câteva trucuri pentru a dezactiva o grămadă de conținut. Acum lucrez în principal în ramura de master și de a comuta pe lite și merge în cele mai recente evoluții majore atunci când apar. Funcționează foarte bine.

Publicat 14/02/2009 la 20:38
sursa de către utilizator

voturi
0

Abordarea mai bună este de a avea doar un singur proiect, cu mai multe obiective în loc - una pentru fiecare versiune a aplicației. Deci , ce sunt ținte: Ținte multiple

Publicat 03/06/2015 la 09:56
sursa de către utilizator

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