2013-04-15 11 views
9

Używanie Xcode (do rozwijania na iOS) Chcę utworzyć drugi projekt, który jest taki sam jak pierwszy projekt, ale niektóre klasy są różne.Utwórz dwie aplikacje iOS w Xcode

Dokładnie, tworzę aplikację IPhone i chcę zaoferować darmową wersję i wersję premium. W rzeczywistości kod projektów jest identyczny, ale zmienia niektóre klasy.

Problem polega na tym, że nie chcę wspierać dwóch projektów. Jeśli zmienię klasę, muszę zmodyfikować tę samą zmianę w innym projekcie. Jest bardzo zbędny.

Poza tym projekt jest przekazywany do zdalnego repozytorium GIT.

Ostatnia uwaga, aplikacja iOS jest identyfikowana za pomocą identyfikatora powiązanego z projektem.

Potrzebuję dwóch różnych projektów?

Jakie jest najlepsze rozwiązanie do tworzenia dwóch projektów aplikacji na iOS w Xcode, dzielących klasy, ale zmieniających dwie lub trzy klasy?

Dzięki

Odpowiedz

17

Chcę zaoferować bezpłatną wersję i wersję premium.

W tym przypadku nie trzeba utworzyć dwie aplikacje w dwóch projektach: wszystko, czego potrzebujesz to drugi cel dla danej wersji premium. Oto link that explains how to create and manage multiple targets in Xcode.

Proces sprowadza się do dodania celu do projektu, definiując osobny pakiet plist dla niego, opcjonalnie konfigurując symbol preprocesora do kompilacji warunkowej, i używając tego symbolu do #ifdef części klas nie są potrzebne w wersji darmowej .

Innym powszechnym podejściem do zarządzania ofertą bezpłatną i premiową jest udostępnienie jednej wersji za darmo i umożliwienie użytkownikom aktualizacji do wersji premium poprzez zakup w aplikacji.

6

Trzeba tylko utworzyć dwa cele. Więc zmodyfikujesz tylko jedną podstawę kodu, idealną!

This tutorial przeprowadzi Cię przez proces (a nawet użyje wersji Lite/PayP w swoim przykładzie).

0
  1. Duplikat cel wersji płatnej i nazwą go za darmo wersja

  2. określić nazwę makra PaidApp=1 płatnego docelowego, a następnie umieścić ten wiersz kodu w zapalania applicationDidfinishLaunching.

    #ifdef PaidApp 
    [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"adDisabled"]; 
    #endif 
    
  3. gdy bezpłatna aplikacja działa cel, jeśli ktoś nabycia zapłacona funkcji aplikacji a następnie ustawić wartość od „@” adDisabled do 1 (o wartości domyślnej @ „adDisabled” będzie 0)

Powiązane problemy