Dropbox iOS SDK对于isLinked总是返回“YES”

我正在使用iOS Dropbox SDK,并希望检查我的应用程序是否已经与Dropbox帐户链接。 所以我这样做:

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

self.isLinked总是返回YES 。 即使在清理和重置iPhone模拟器之后。


只有在iOS模拟器中运行而不是在真实设备上才会发生这种情况。 我不知道为什么会发生这种情况,但是如果主机Mac与Dropbox帐户链接,则模拟器上的Dropbox SDK也会链接。

要在模拟器中获得真实的行为,请在Dropbox首选项中取消Mac链接。

在2012年年中的某个时候(无法findiOS SDK版本日志),Dropbox iOS SDK行为更改为通过卸载/重新安装应用程序(甚至在设备上)保留“链接”状态。 因此,在接收“链接”callback(如我的)时执行某些操作的应用在重新安装后将不起作用。

一个解决scheme是首先解除链接。 像这样的东西:

 - (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]; } }