2016-01-19 8 views
6

Rozumiem model wdrożenia w idealnym przypadku, aby wszyscy użytkownicy zawsze aktualizowali aplikację do najnowszej wersji sklepu z aplikacjami. Ale w rzeczywistości tak nie jest. Jak radzić sobie z różnymi wersjami kompilacji natywnej aplikacji iOS opartej na reagowaniu za pomocą CodePush? Rozważmy następujące dwa scenariusze:CodePush: Jak wdrożyć do wielu wersji kompilacji tej samej konfiguracji wdrożenia?

1) Używam CodePush do wdrażania nowych js bundels do wersji 1.0.0 mojej aplikacji. Teraz wypuszczam wersję 1.1.0 i chcę dostarczyć nowy kod za pomocą CodePush. O ile widzę, jest teraz sposób wdrażania do wersji 1.0.0 i 1.1.0 w tym samym czasie ani różnych pakietów, ani tego samego. Więc kiedy wypchnąłem pakiet do wersji 1.1.0, nie byłoby sposobu na aktualizację aplikacji 1.0.0, które nie zostały zaktualizowane za pośrednictwem sklepu z aplikacjami.

2) O ile mogę powiedzieć, jednym ze sposobów jest wydawanie nowych wersji tylko ze zwiększonym numerem kompilacji (CFBundleVersion), ale niezmienionym łańcuchem wersji (CFBundleShortVersionString). Ma to jednak wpływ na to, że nawet świeżo pobrana wersja najnowszego sklepu z aplikacjami (np. 1.1.0 (8)) zawsze będzie najpierw ładować najnowszy pakiet na macierzy kodowej.

Czy można to zrobić w sposób czysty i bez niepotrzebnych aktualizacji?

+0

Chciałbym oznaczyć to tagiem #codepush, ale nie mogę tego zrobić. Może administrator mógłby to zrobić? Dzięki. –

Odpowiedz

7

Planujemy zoptymalizować ten scenariusz już wkrótce, ponieważ, jak już wspomniano, zdajemy sobie sprawę, jak często jest to konieczne.

Tymczasem sposób, który zalecamy, aby to wspierać (i wielu naszych użytkowników obecnie robi), polega na utworzeniu nowego wdrożenia CodePush dla wydania 1.1.0, w tej samej aplikacji CodePush, co istniejący 1.0. 0 wdrożenie i zaktualizuj plik Info.plist, aby wskazać nowy klucz wdrożenia przed przesłaniem wersji 1.1.0 do magazynu.

W ten sposób można udostępnić aktualizacje zarówno użytkownikom 1.0.0, jak i 1.1.0. Jeśli chcesz wydać tę samą aktualizację obu, musisz dwukrotnie uruchomić komendę Release, ale jeśli masz aktualizacje ukierunkowane tylko na jedną, po prostu zwolnij ją do odpowiedniego wdrożenia.

To rozwiązanie działa dobrze dla ludzi i ma "zaletę" polegającą na tym, że jest bardzo jasne, jak chcesz zarządzać wieloma wersjami binarnymi równolegle, ale jest to oczywiście również hack-owski i bardziej szczegółowy/nieporęczne, niż powinno być.

Będziemy upraszczać to doświadczenie w nadchodzącym miesiącu i bardzo bym chciał uzyskać Twoją opinię o tym, jak najlepiej dostosować się do Twoich scenariuszy. Napisz do mnie bezpośrednio, jeśli masz dalsze pytania/etc ([email protected]).

Dzięki!

+0

Bardzo dziękuję za szybką odpowiedź. Tak też planowałem. Jeśli chcesz wspierać te scenariusze, sugeruję tylko śledzenie każdej wersji kompilacji w ramach wdrożenia, a nie tylko korzystanie z najnowszej. Możesz więc przesłać je do wersji 1.0.0 i 1.1.0, aby oba były obsługiwane przez to samo wdrożenie. Następnie możesz dodać pchanie do kilku wersji naraz i promocję między wersją. Zasadniczo wersjami byłyby automatycznie generowane pod-wdrożenia. –

+1

Czy są jakieś aktualizacje tej odpowiedzi? – Will

Powiązane problemy