22.3. Creating and Managing Folders for Apps in iCloud
Problem
You want to store specific files into specific folders within the user’s iCloud storage for your app.
Solution
Follow these steps:
Make sure your app is set up to use iCloud (see Recipe 22.1)
Select your project file in Xcode and select the Summary tab.
Select the entitlements file that Xcode created for you by clicking on it, as we saw in Recipe 22.1, and look at the first value under the
com
.apple
.developer
.ubiquity-container-identifiers
section. This value is simply equal to$(Team
Identifier
Prefix)
plus your bundle ID, so make a note of that. For my app for this recipe, the value of this key is equal to$(TeamIdentifierPrefix)com.pixolity.ios.cookbook.icloudapp
. We are going to use this full value in the next steps.In your app delegate, place the string that you copied from the iCloud Containers list, into a string. Prefix this string with your Team ID (see Recipe 22.2 on how to find your Team ID).
Now instantiate an object of type
NSFileManager
and pass the path that you created in the previous two steps to theURLForUbiquityContainerIdentifier:
method of this class. The value of this method will be the local address for iCloud storage on the device that is running your app. Let’s call this path Root iCloud Path.Append the folder name that you want to create to the Root iCloud Path (see previous step). Keep the resulting path in a string or an instance of
NSURL
.Invoke the
fileExistsAtPath:isDirectory:
method of your file ...
Get iOS 7 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.