2012-10-23 9 views
9

Używam zestawu SDK do iOS Dropbox i chcę sprawdzić, czy moja aplikacja jest już połączona z kontem Dropbox. Więc robię:Dropbox iOS SDK zawsze zwraca "TAK" dla isLinked:

if (self.isLinked) { 
    NSLog(@"linked"); 
} 

Jednak self.isLinked zawsze zwraca YES. Nawet po wyczyszczeniu i zresetowaniu iPhone'a Simulatora.


Dzieje się tak tylko podczas pracy w symulatorze systemu iOS na prawdziwym urządzeniu. Nie wiem, dlaczego tak się dzieje, ale pakiet SDK Dropbox na symulatorze jest również połączony, jeśli jego komputer Mac jest połączony z kontem Dropbox.

Aby uzyskać realistyczne zachowanie w Symulatorze, odłącz swój komputer Mac w preferencjach Dropbox.

Odpowiedz

15

Jakiś czas w połowie 2012 r. (Nie można znaleźć dziennika wersji iOS SDK) zachowanie Dropbox iOS SDK zostało zmienione, aby zachować status "łącza" przez odinstalowanie/ponowne zainstalowanie aplikacji (nawet na urządzeniu). W rezultacie aplikacje wykonujące pewne działanie po otrzymaniu "połączonego" wywołania zwrotnego (np. Moje) nie będą działały po ponownej instalacji.

Jednym z rozwiązań jest odłączenie przy pierwszym uruchomieniu. Coś jak na to:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    if ([[NSUserDefaults standardUserDefaults] objectForKey:HAS_RUN_KEY] == nil) 
    { 
     // ensure you have a DBSession to unlink 
     if ([DBSession sharedSession] == nil) 
     { 
      DBSession* dbSession = [[[DBSession alloc] initWithAppKey:DROPBOX_KEY appSecret:DROPBOX_SECRET root:kDBRootAppFolder] autorelease]; 
      [DBSession setSharedSession:dbSession]; 
     } 

     // unlink 
     [[DBSession sharedSession] unlinkAll]; 

     // set 'has run' flag 
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:HAS_RUN_KEY]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 
} 
+1

Podczas gdy mój problem był bardziej szczególny (dropbox utrzymuje link w symulatorze, jeśli mac jest połączone), twoje rozwiązanie dotyczy również innych możliwych problemów z linkowaniem. To może zapobiec wielu bólom głowy. Dzięki, zintegruję to w mojej aplikacji. – codingFriend1

+0

@ codingFriend1 Powinieneś również udzielić tej odpowiedzi. Dzięki, szykowałem się do tego. – fzwo

+0

co to jest HAS_RUN_KEY tutaj? – Bhushan

Powiązane problemy