Showing posts with label icloud. Show all posts
Showing posts with label icloud. Show all posts

Wednesday, 26 June 2013

How to create iCloud entitlements file manually?

Creating entitlements file manually is very simple, open the text editor and just copy and paste the following lines of code: (save it as <yourappname>.entitlements)

<?xml version="1.0" encoding="UTF-8">
<!DOCTYPE plist PUBIC "-//Apple//DTD PLIST" 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>apple.developer.ubiquity-container-identifiers</key>

<array>
<string>$(TeamIdentifierPrefix).com.yourdomain.icloudapp</string>
</array>

<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>$($(TeamIdentifierPrefix).com.yourdomain.icloudapp)</string>

</dict>
</plist>

After saving you file simply drag and drop it to your app on xcode.

written by: infinitywebseo 

Monday, 24 June 2013

UIDocument does not allow you to write strings directly to disk

If you are using UIDocument in your app, always remember that UIDocument doesn't allow you to write strings directly to disk.

You need to package the string value in NSData then you can write it to disk. You can do it using the contentsForType:error method.

Below is a sample code, first check that the string is not NULL :

- (id)contentsForType:(NSString *)typeName error:(NSError **) myError{
    if (!self.stringDocument)
        self.stringDocument = @"";

    NSData *nsDataDocument = [self.stringDocument
                           dataUsingEncoding:NSUTF8StringEncoding];
    return nsDataDocument;
}

written by: infinitywebseo 

Wednesday, 19 June 2013

How to Check iCloud is available in your app?

After enabling icloud on your app, just copy and paste the highlighted lines of code to your appdelegate.m to check that icloud is available for your app:

- (void)initializeiCloudAccess {
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        if ([[NSFileManager defaultManager]
             URLForUbiquityContainerIdentifier:nil] != nil)
            NSLog(@"iCloud is available\n");
        else
            NSLog(@"iCloud is not available.\n");
    });
}


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
   
    [self initializeiCloudAccess];

    return YES;
}

The executable was signed with invalid entitlements. (0xE8008016)


Summary: if you have this error --> Try creating your new provisional profile through xcode > organiser it may solve the problem. (Don't create it trough your developer account on-line)

I had this error when I tried to run an app that uses icloud on an ios device. For icloud application you must create an app id  and new provisional profile.

What I did was that I create my new provisional trough my apple developer account website. Even thought I refreshed my provisional profile on xcode > organiser, I couldn't get rid of the error,  never mind few hours of searching on the web trying to find out the answer which was unsuccessful.


At the end, I just deleted my app id, and provisional profile. Then I create  a new app id, and this time I create my provisional profile through xcode > organiser, run my app again and it just worked.

written by: infinitywebseo