Właśnie odkryłem coś o wersjach i App Store. Właśnie teraz cierpię na problemy i użytkownicy się zawieszają z powodu zachowania systemu iOS, którego wcześniej nie potrafię sobie wyobrazić. I, co bardzo ważne, iTunes, AppStore i iOS zmodyfikowały niektóre uaktualnienia i instalowanie reguł w ostatnich wersjach. Teraz działa w ten sposób: - Kiedy użytkownik instaluje nową wersję, wszystkie pliki w pakiecie są pobierane i kopiowane w poprzednim istniejącym pakiecie, ale NIE ZOSTANIE USUNIĘTE STARE PLIKI LUB KOMPONENTY (lub nie wszystkie są usuwane). Tak więc ostateczny pakiet NIE jest równy pakietowi nowej instalacji nowej wersji. - Jeśli na przykład plik xib/nib jest zlokalizowany w różnych językach dla nowej wersji, zaktualizowany pakiet będzie zawierał obie wersje: jedną w folderze głównym, a drugą w każdym zlokalizowanym folderze. System oczywiście użyje pierwszego i tylko nowa instalacja pokaże lokalizacje dla tego pliku. Jedna z moich aplikacji pokazuje ten problem z plikiem MainWindow.xib, a ponieważ istnieją pewne modyfikacje odniesień i klas, zaktualizowane aplikacje zawieszają się przy każdym uruchomieniu, ponieważ używa on przestarzałego obiektu. Zbudowałem nową wersję zmieniającą nazwę plików xib/nib, które zostały zlokalizowane. Ponieważ MainWindow jest jednym z nich, muszę oczywiście zmodyfikować odniesienie w info.plist.
OK, wiedząc, że możesz zbudować nową wersję z kompletnymi różnymi komponentami w pakiecie, który jeśli istnieją pliki z poprzedniej wersji, aplikacja oferuje użytkownikowi opcję ich użycia. To znaczy dwie wersje aplikacji w jednej ikonie i pakiecie. Niezbyt trudne do zrobienia.
ALE, bardzo dziwne jest to, że uważam, że nowa wersja iOS i iTunes nie zezwalają na obniżanie wersji. Próbowałem to zrobić, ale nie zrobiłem tego. Oznacza to, że jeśli zainstalujesz wersję, na przykład 1.2, AFAIK nie będzie w stanie zainstalować ostatniej wersji v1.1 na urządzeniu ani w iTunes -> "Aplikacje". Tak więc pakiet podwójnej wersji będzie działać do momentu ponownej instalacji aplikacji.
bardzo pouczająca odpowiedź Gaberiel :) Czy mógłbyś proszę dać mi znać część sqlite? Co dokładnie się stało, jeśli stara i nowa wersja ma ten sam plik o nazwie sqlite (np. Abc.sqlite1.0)? Jak zachowa się moja nowa wersja aplikacji? czy zastąpi starą sqlite? Albo otrzymam dane z obu sqlite. –
Tak. Wszystko, co powiedziałem, dotyczy elementów w pakiecie aplikacji. Jeśli oba mają taką samą nazwę w pakiecie, stary zostanie zastąpiony nowym zgodnie z oczekiwaniami. – Gabriel
@Gabriel: Czy istnieje sposób na skopiowanie danych ze starszej wersji db do nowszej, zanim zostanie ona zastąpiona? – Mrunal