2013-03-08 29 views
2

我有三個應用程序將文件上傳到Dropbox。所有三個代碼都是相同的。他們都有着相同的文件夾,所以我使用相同的密鑰等Dropbox錯誤在設備上打開另一個應用程序,而不是在模擬器上

繼承人這樣會很奇怪

一切正常了幾個月

2.現在的應用2和3當用戶嘗試登錄它打開第一個應用程序?

註銷並且,沒有任何幫助,只是說,即使世界一個錯誤連接到Dropbox和稍後重

什麼香港專業教育學院試圖

所有三個創建seprate密鑰等應用程序不分享,仍然會得到相同的行爲?

對此的一些研究表明Dropbox已經改變了它通過應用程序鏈接到用戶帳戶的方式,並且即使刪除應用程序也會提示鏈接。有沒有其他人有這方面的經驗?在的viewController

的appdelegate

NSString* appKey = @"00000000000"; 
NSString* appSecret = @"0000000000"; 
NSString *root = kDBRootAppFolder; 

DBSession* session = 
[[DBSession alloc] initWithAppKey:appKey appSecret:appSecret root:root]; 
session.delegate = self; // DBSessionDelegate methods allow you to handle re-authenticating 
[DBSession setSharedSession:session]; 

[DBRequest setNetworkRequestDelegate:self]; 

按鈕處理

LogCmd(); 
self.publishButtonPressed = YES; 
if (![[DBSession sharedSession] isLinked]) { 
    [self loginLogoutButtonPressed:nil]; 
} else { 

    DBRestClient *restClient = [[DBRestClient alloc] initWithSession:[DBSession sharedSession]]; 
    restClient.delegate = self; 
    NSError *error = nil; 
    NSString *filePath = [ICUtils pathForDocument:self.fileName]; 
    [self.pdfData writeToFile:filePath options:0 error:&error]; 
    if (nil == error) { 

     [restClient uploadFile:self.fileName 
         toPath:@"/" 
       withParentRev:nil 
         fromPath:filePath]; 
    } else { 
     [ICUtils raiseAlertWithTitle:@"An error occurred" message:[error localizedDescription]]; 
    } 
} 
} 

注意工程確定在模擬器上,問題只出現在設備

回答

0

那是因爲你正在使用相同的ke對於多個應用程序。 Dropbox應用程序通過自定義URL方案與您的應用程序進行通信 - 啓動您的應用程序(因爲沒有其他方式可以在iOS上以編程方式啓動應用程序)。

換句話說,Dropbox應用程序告訴系統打開「db-yoursecretkey:// somemessage」,它打開該自定義URL方案的註冊應用程序。不幸的是,所有的應用程序都使用相同的自定義方案,因爲它們都使用相同的密鑰,所以系統只挑選一個:很可能是第一個。

但是,您可以授予您的應用程序訪問收件箱中的所有文件夾的權限,從而有效共享文件夾。所以沒有必要讓所有三個應用程序使用相同的密鑰。

+0

是的,它是需要在pList文件中更改的自定義URL方案。 – JSA986 2013-10-18 10:35:07

相關問題