2009-11-16 16 views
5

Zbliżam się do ukończenia mojego pierwszego stosunkowo prostego projektu Xcode (niestandardowy instalator) i muszę wykonać 22 kompilacje. Tak, to nie była literówka! W każdej kompilacji wyróżnia się PRODUCT_NAME, plik źródłowy w folderze Zasoby zasobów oraz zmienna określająca, czy oprogramowanie jest wersją próbną, czy nie.Najbardziej efektywny sposób wykonania 22 różnych kompilacji

Z tego co przeczytałem do tej pory, duplikowanie istniejącego celu wydaje się być sposobem, aby to zrobić, gdy jest tylko kilka buildów, ale czy to nadal jest prawda dla 22? Wygląda na to, że to bardzo dużo pracy. Miałem na myśli sposób na zmianę PRODUCT_NAME, plików źródłowych skopiowanych do folderu Zasoby i boolean trybu próbnego. Ale utknąłem.

dzięki

Odpowiedz

1

pewnie bym napisać skrypt, który używany szablon .xcodeproj i sed aby wygenerować wszystkie niezbędne kombinacje.

1

Być może warto wypróbować CMake, aby zachować tę dużą liczbę kompilacji.

Skrypty mogą z pewnością wykonać zadanie, ale gdy projekt zostanie rozbudowany do znacznej liczby plików lub jeśli zmieni się liczba buildów, zmiana skryptu może stać się owłosiona. CMake pozwoli ci organizować te skrypty, więc przynajmniej trochę łatwiej będzie dokonać modyfikacji w przyszłości.

2

Moja odpowiedź jest taka, że ​​22 gut inny buduje które różnią się tylko jednym plikiem źródłowym jest źle ...

Nie może być problem odwrócił? Uwzględnij wszystkie 22 różne wersje aplikacji w jednej kompilacji i dostarcz 22 różne pliki kluczy/licencji w folderze .app, odsłaniając jedną z 22 wersji.

+0

Niestety nie. Są to wtyczki, które nie są zabezpieczone przed kopiowaniem, więc muszą być oddzielnymi kompilacjami do osobnego pobrania. – user212253

+0

Wtyczki - zbuduj jedną aplikację i dostarczaj różne wtyczki, z których każda zawiera pożądaną funkcjonalność. Chociaż to prawie przywraca problem 22 kompilacji ... –

2

Jednym ze sposobów, w jaki to zrobiłem w przeszłości, jest użycie lokalizacji. Podczas używania makr aromatyzowanych NSLocalizedString niektóre z nich mają możliwość określenia nazwy tabeli (tzn. Innego pliku tekstowego niż domyślny). Następnie, gdy potrzebuję kompilacji innej marki, po prostu utworzę nowy plik .strings z odpowiednimi parami klucz-wartość.

Następnie mam obiekt kompilacji, który buduje kod z wartościami domyślnymi, oraz drugi cel, który pobiera utworzony kod i kopiuje odpowiedni plik .strings do jego właściwej lokalizacji. Działa to całkiem dobrze i pozwoliło nam zarządzać wieloma różnymi smakami kompilacji.

Powiązane problemy