2011-07-21 12 views
5

Czy istnieje metoda, która ma być testowana podczas aktualizacji aplikacji?Test aktualizacji aplikacji iOS

Jestem zawstydzony, ponieważ istnieje błąd, który występuje tylko wtedy, gdy aplikacja jest aktualizowana i nie jest badana.

Odpowiedz

7

Jeśli pytasz, czy chcesz dowiedzieć się, kiedy aplikacja jest aktualizowana za pośrednictwem sklepu z aplikacjami, nie jestem świadomy takiej metody.

Hackie podejście do tego polega na zapisaniu bieżącej wersji aplikacji na NSUserDefaults, a następnie sprawdzeniu, czy wersja aplikacji NSUserDefaults jest równa bieżącej wersji aplikacji.

Na przykład:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    NSString *currentAppVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 

    if ([defaults objectForKey:@"savedAppVersionKey"] != nil) { 
     //key exists 

     NSString *savedAppVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"savedAppVersionKey"]; 

     if ([currentAppVersion isEqualToString:savedAppVersion]) { 
      //still running the same app version 
     } 
     else { 
      //the app version changed from the last launch 
     } 

    } 
    else { 
     //first run, set the key & synchronize 
     [[NSUserDefaults standardUserDefaults] setObject:currentAppVersion forKey:@"savedAppVersionKey"]; 

     [[NSUserDefaults standardUserDefaults] synchronize] 
    } 

} 

nie testowałem ten kod, ale to powinno działać.

Dzięki,

-David

+0

To co mam aktualnie robi. Ale przechowuję wersję aplikacji w bazie danych. – conor

+1

powyższy kod nigdy nie przechowuje "currentAppVersion", z wyjątkiem pierwszego uruchomienia. łatwym rozwiązaniem byłoby usunięcie innego i po prostu ustawienie wersji i synchronizacji za każdym razem. – joshpaul

3

Zamiast uruchamiać aplikację z Xcode, można przeciągnąć aplikację iTunes. Następnie aplikacja zostanie zainstalowana przez iTunes podczas synchronizacji (musisz mieć zainstalowany profil obsługi administracyjnej, ale jeśli możesz uruchomić Xcode, już go masz). Następnie możesz przeciągnąć nowszą wersję aplikacji do iTunes i zaktualizować ją, wykonując synchronizację (upewnij się, że zmieniłeś wersję aplikacji lub iTunes nie zaktualizuje aplikacji).

Nie wiem, czy to będzie dokładnie ten sam proces, który wystąpił w aktualizacji, ale uważam, że jest to najlepsze, co możemy zrobić, aby go przetestować.

0

Najlepszym rozwiązaniem byłoby utworzenie pliku ipa z profilem udostępniania rozwoju starej wersji aplikacji. Niektórzy wspomnieli, że możesz zsynchronizować ten plik z iTunes. W rzeczywistości to nie jest najłatwiejszy sposób; zamiast tego użyj organizatora X-Code, aby przeciągnąć plik ipa do urządzenia w "Urządzenia"> [Twoja nazwa urządzenia]> "Aplikacje". Spowoduje to natychmiastowe zainstalowanie starej wersji aplikacji.

W tym momencie może być ważne, aby uruchomić aplikację w tym momencie i odtworzyć dowolną sytuację, którą próbujesz dokładnie odtworzyć. (Uwaga: organizator X-Code umożliwia przesyłanie plików do/z Sandbox za pomocą zakładek "Pobierz" i "Przesyłanie" na dole Organizatora na zakładce Urządzenia, więc może nie być konieczne wykonanie całego stanu logika tworzenia ręcznie.)

Po zainstalowaniu starej aplikacji w stanie, który próbujesz odtworzyć, możesz uruchomić nową aplikację na starej lub wdrożyć nową ipa z Test-Flight/X- Code Organizer.

Szczególnie przy uruchamianiu z debugera wydaje się, że lokalizacja pakunku/piaskownicy nie zmienia się/nie może zmieniać; podczas aktualizacji z Test-Flight robi. Obecnie nie jest dla mnie jasne, czy ta lokalizacja może się zmienić na aktualnej aktualizacji aplikacji z iTunes, ale zdecydowanie jest to coś, co chcesz uwzględnić w testach.

Powiązane problemy