2013-09-05 16 views
7

Mam projekt, który chciałbym zamieścić na białej etykiecie. Zasadniczo tylko ikony, obrazy startowe i info.plist muszą zostać zmienione. Problem polega na tym, że projekt jest zbyt duży i naprawdę nie chcę dodawać do niego dodatkowych celów i zasobów.Białe etykietowanie aplikacji na iOS

Rozwiązaniem, które widzę, jest utworzenie oddzielnego projektu i dodanie pierwszego jako projektu zależności. Ten biały projekt etykietowania nie zawierałby kodu, ale wiązkę celów z różnymi obrazami i listami informacyjnymi. W tym przypadku za każdym razem, gdy chcę biały label aplikacji, po prostu utworzyć inny cel z własnym zestawem obrazów. I ilekroć chcę stworzyć kolejną wersję, mogę łatwo zbudować wszystkie te cele i uzyskać kilka wariantów dla tej samej aplikacji. Brzmi łatwo.

Problem dotyczy implementacji. Połączyłem projekt jako zależność, tak samo zrobiłem z celem. Ale za każdym razem, gdy buduję aplikację, tworzy ona plik wykonywalny o oryginalnej nazwie, mimo że jest inny w info.plist. Prawdopodobnie dzieje się tak dlatego, że oryginalny cel ma własną listę info.pl. Kolejną rzeczą jest zastąpienie zasobów z pierwotnego celu innymi.

wdzięczni za każdą pomoc

+0

Moim zdaniem celem jest najlepszym sposobem, aby osiągnąć to, co chcesz, należy rozważyć takie rozwiązanie. – Cyril

+0

Tak, im więcej o tym myślę, tym bardziej rozumiem, że byłoby to najprostsze rozwiązanie. – Ezeki

Odpowiedz

2

Zrobiłem to w mojej pracy i jak zrobiłem to ja mam skrypt Pythona, który napisałem, że idzie i manipuluje Info.plist z listy wartości zamiennych, które przechowywać w alternatywny plik plist. Mamy również skrypt krokowy kompilacji, który idzie i wstrzykuje wszelkie zasoby potrzebne do tej konkretnej kompilacji.

Możesz manipulować pakietem, który chcesz, ale musisz to zrobić tuż przed tym, jak Xcode podpisuje aplikację. W niektórych przypadkach możesz chcieć wejść i edytować plik Info.plist w pakiecie, co jest w porządku, po prostu zrób to przed krokiem podpisywania.

+0

dziękuję, to brzmi naprawdę interesująco! Czy chciałbyś udostępnić próbkę tego skryptu? – Ezeki

+0

Nie jestem w stanie tego zrobić, poza tym, że jest nieco bardziej skomplikowana niż to, czego potrzebujesz. Czy masz konkretną część, w której potrzebujesz wskazówek? – dtrotzjr

15

Obecnie zarządzam aplikacją na iOS z funkcją whitelabeled. Dodajemy cele dla każdego klienta białej etykiety do głównego projektu, a większość jego elementów konfigurujemy za pomocą pliku Theme.plist.

Każdy cel obejmuje wszystkie klasy aplikacji, ale ma niestandardowe Info.plist, ikony, ekrany uruchamiania, pliki czcionek i Theme.plist.

Uniknęliśmy podejścia, które wspomniano powyżej @dtrotzjr, ponieważ było kilka rzeczy poza plikiem Info.plist, które musieliśmy zmienić na docelowy ... dobrym przykładem jest profil zaopatrzeniowy, a także makra preprocesora do obsługi okazjonalnych #ifdef dla hacków na klienta.

Ułatwiło to także nowym programistom zrozumienie procesu budowania.

+0

Myślę, że to powinna być akceptowana odpowiedź, ponieważ jest bardziej elastyczna i nie wymaga pozapasmowego Pythona. –

Powiązane problemy