iCloud Drive文件夹

6
我有一个使用旧版团队ID普遍性密钥的OSX应用程序,使用iCloud文档。是否有人知道如何使普遍性文件夹显示在iCloud驱动器文件夹中?
我已经尝试在应用程序pList中将NSUbiquitousContainerIsDocumentScopePublic密钥设置为true,但没有效果。
出现在iCloud驱动器中的文件夹包括Apple的应用程序和Pixelmator。

嗨,安迪,你解决了这个问题吗?我也遇到了同样的问题。 - Mark
不,我还没有解决它。:( 但是我还没有时间找出我做错了什么。你尝试过Maximilian在下面建议的所有方法吗? - AndyTang
我们最终成功了,通过执行Maximilian建议的所有操作,包括密钥和构建号。我认为构建号必须更高?构建还必须至少运行一次。 - AndyTang
1个回答

11

将这些值添加到您的info.plist文件中并更改您的构建号

<key>NSUbiquitousContainers</key>
    <dict>
        <key>iCloud.com.example.app</key>
        <dict>
            <key>NSUbiquitousContainerIsDocumentScopePublic</key>
            <true/>
            <key>NSUbiquitousContainerName</key>
            <string>App name to display in iCloud Drive</string>
            <key>NSUbiquitousContainerSupportedFolderLevels</key>
            <string>None</string>
        </dict>
    </dict>

如果将这些密钥添加到您的授权中,您将在“iCloud”能力部分看到一个错误,但它仍然可以正常工作。因此,请不要点击“修复”按钮或从“能力”更改它,否则它将不再起作用。

<key>com.apple.developer.ubiquity-container-identifiers</key>
        <array>
            <string>iCloud.$(CFBundleIdentifier)</string>
        </array>
        <key>com.apple.developer.icloud-services</key>
        <array>
            <string>CloudDocuments</string>
        </array>
        <key>com.apple.developer.ubiquity-kvstore-identifier</key>
        <string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>

谢谢你的回答!除了NSUbiquitousDisplaySet之外,我已经尝试过那些键了。我还使用团队ID前缀而不是iCloud前缀,否则现有用户将失去他们的文件。这个文件夹会在开发中显示吗?还是只有在提交到应用商店时才会出现? - AndyTang
你是如何获取ubiquity容器的? - Maximilian Litteral
我只是使用NSOpenPanel来为用户打开文件。[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];将返回iCloud Drive内正确的文件夹,只是该文件夹在主iCloud Drive文件夹中不可见。 - AndyTang
我还没有解决它,因为我在处理配置文件方面遇到了问题,但是感谢Maximillian至少尝试帮助。 - AndyTang
3
是的,看起来问题主要出在我没有改变版本号。非常感谢! - Epaga
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接