2017-05-21 37 views
1

因此,我正在開發兩個應用程序,我想使用同一個iCloud容器。iOS應用程序不會使用自定義iCloud容器

我已經按照Xcode和蘋果在線文檔中所示的所有步驟進行了操作。我添加了激活iCloud功能到我的應用程序,檢查了CloudKit複選框,選擇了我想要使用的自定義容器(對於這兩個應用程序顯然是相同的)。

該應用程序已更改權利文件中的iCloud容器標識符,該標識符應指示一切正常。但是,無論何時使用該應用程序並打印我的容器名稱,它都會顯示每個應用程序的默認容器名稱。

兩個應用程序,功能界面如下所示: enter image description here

我已經創建了一個對象,CloudKitController,管理所有云流量。我intialize它加班應用程序啓動,並設置變量是這樣的:

var container:  CKContainer 
var publicDB:  CKDatabase 
let privateDB:  CKDatabase 
var delegate:  CloudKitControllerDelegate? 

override init() { 
     container = CKContainer.default() 
     print(container.containerIdentifier) 
     //this prints the name of the default container for the project 
     publicDB = container.publicCloudDatabase 
     privateDB = container.privateCloudDatabase 
    } 

我還跟開發人員門戶網站,並確保我想使用的容器都應用已與相關的唯一容器。也沒有工作。

我的問題是:如何從同一開發人員帳戶和配置文件中獲得兩個應用程序,以在一個iCloud容器上工作?

+0

[編輯]你的問題與相關的代碼,顯示你如何在這兩個應用程序中訪問'CKContainer'。 – rmaddy

+0

完成!你需要其他信息嗎?我會更樂意提供它! – Joris416

回答

2

您聲明您希望使用具有特定標識符的特定容器。但是你有的代碼是專門訪問應用程序的默認容器。這不是你想要的。

變化:

container = CKContainer.default() 

到:

container = CKContainer(identifier: "your shared container id") 

欲知詳情,請閱讀CKContainer類的文檔。

+0

我推測在應用程序的功能屏幕中選擇容器會自動將該容器轉換爲默認容器。謝謝! – Joris416

+0

應用程序可以同時使用默認容器和任意數量的特定容器。所以如果默認的一個神奇地引用了其他特定的容器,那將會很糟糕。 – rmaddy

相關問題