【发布时间】:2015-07-22 12:57:22
【问题描述】:
我尝试为我们已经工作和同步的 iOS 应用程序的 Cocoa 应用程序实现 Ensembles iCloud 同步。因为我在那个 Cocoa 应用程序中遇到了问题,所以我想试试 Ensembles 示例应用程序。
所以我尝试让 OSX 的惯用应用程序通过 iCloud 同步。 但我总是遇到同样的错误,我没有登录 iCloud,因为
[fileManager URLForUbiquityContainerIdentifier:ubiquityContainerIdentifier]
总是为我返回nil。
我在我的 Macbook 上登录 iCloud 并同步,例如 DayOne 在 iPhone 和 Macbook 之间运行良好。因此,未登录可能不是问题。问题是,为什么FileManager 不返回标识符?
我已经为此烦恼了三天,它已经工作了一段时间并且因为“我不知道”而坏了。
我从 TimeMachine 恢复了我的 ~/Library 文件夹,然后它又工作了一段时间,但又坏了。
然后我创建了一个新的操作系统用户并为 iCloud 使用了另一个 Apple-ID,它工作了一段时间后又坏了。
我真的有点困惑,不确定它是否与签名、沙盒、供应......或其他什么有关。
那么,我做了什么?
我打开了Ensembles 1.4 Idiomatic 项目,
在Target-General-选项卡上,我更改了BundleIdentifier,启用了MacAppStore Signing,并选择了我们的DevTeam。
在Capabilities-选项卡上,我启用了AppSandbox 和iCloud Capabilities,
指定自定义容器并选择新创建的 iCloud 容器,
在BuildSettings-选项卡上,我为我们的BundleID 选择了Mac Developer CodeSigningIdentity 和MacTeamProvisioningProfile。
(我只会发布屏幕截图,但没有足够的声望点。)
此外,禁用沙盒功能也无济于事。
有没有人知道或知道我缺少什么?
~/Library 中的任何“魔术”文件夹都必须删除吗?登录和退出 iCloud?删除 iCloud 服务器上的容器?
还是我必须重新启动App-Id-Certificate-ProvisioningProfile-hassle,才能解决这个问题?
会不会是我的 iCloud 帐户已损坏?
任何帮助表示赞赏,在此先感谢您。
【问题讨论】:
-
不确定可能是什么问题。听起来像是一个更普遍的 iCloud 问题,而不是纯粹与 Ensembles 相关。我想您确定问题是由返回
nil的URL 方法引起的,对吧?或者这可能是一个错误的假设? -
是的,我很确定。我已经对其进行了调试,并返回了 UbiquityID,但对于容器,则返回了 nil。是的,我也确实认为这不是 Ensembles 问题,因为 Ensembles 对 iOS 应用程序非常有效。但我希望,你经常被问到这样的事情,你可以说:是的,对于 Idiomatic-Mac-App,你肯定忘记了 xxx 或 yyy!
-
我猜在 iCloud Drive 设置中,该应用已被授予使用该驱动器的权限,对吧?我认为用户可以为每个应用程序关闭和打开它。您确定更改了 iCloud 容器 ID 并在 Apple 网站上设置了该容器吗?
-
iCloud Drive 设置应用?如果您指的是 MacOS-iCloud-System-Settings 和 iCloudDrive 区域,那么是的,我在那里启用了 Idiomatic 应用程序。我还创建了 iCloud 容器并允许访问 Apple 服务器上 DeveloperCenter/ 中的 App-ID。
标签: objective-c icloud-drive ensembles