So I finally got ICloud working....here is a basic ICloud Storage tutorial for anyone who needs it, this will also fill in some gaps in the UDN doc's (UDK Nov2012 build):
[*]Step One:(optional, you probably have done this already) Set your Apple developer account up with certificate.
[*]step Two: Once your Apple developer account is setup, goto the Provisioning Potal and create an App ID.

[*]Step Three: Open up the App Id you just created and check Enable for ICloud.

you will get this message that basically states, if you already have a provison setup, you must delete and regenerate it to use the new App Id with Icloud enabled.

create Provision using your new AppID, download the Provision and use with the iOS Configuration Wizard(Lots of information on the UDN about this):

[*]Step four: Open UDK\UDK-2012-10\UDKGame\Config\Iphone\IPhoneEngine.ini, search for [PlatformInterface], now input the entries in bold below into your[PlatformInterface] section, I also placed it in IPhone-UDKEngine.ini just to be sure.
CloudStorageInterfaceClassName=IPhoneDrv.CloudStor ageIPhone
CloudStorageInterfaceFallbackClassName=IPhoneDrv.C loudStorageBaseIPhone
LocalStorageInterfaceClassName=IPhoneDrv.LocalStor ageIPhone
This assigns the correct interface for ICloud storage, by default it was setup to use only local storage(for storage emulation), now the function "Cloud = class'PlatformInterfaceBase'.static.GetCloudStorag eInterface();" returns CloudStorageIPhone_0 instead of CloudStorageBase_0. (Only on the device)
[*]Step Five: Use Epics example CloudPC.uc to incorporate cloud storage into your current project, or use cloudgame.uc as a test game.
[*]Step Six: Next we have to create an entitlements file to access the ubiquitous storage container, You can use XCode to generate one like I did, or If you haven't got a Mac, Just open notepad(or any plain text editor) and paste the XML doc below, fill in your own information, TeamID(can be found on Apple Developer account), Company name, and Game name.
Paying close attention to the <key>com.apple.developer.ubiquity-container-identifiers</key> the last piece "Cloud Save Folder name" is what the Storage Folder on the cloud is called:
Save as UDKGame.entitlements or whatever your UDK install name is(note:not your game name)e.g. "InstallName".entitlements, when your done the file should have the extension "ENTITLEMENTS File" in windows, place this file in UDK\UDK-2012-10\UDKGame\Build\iPhone, this folder should have your mobileprovision and your UDKGameOverrides.plist inside, if it doesn't you need to run iOS Configuration Wizard and import your mobile provision, and edit your Plist remembering the format used earlier, i.e. "Game Name", "Company Name"(reverse domain type).
That should be it, I'm sure theres lots of little things to still work out, but the basic functionality is there.
[*]Step Seven: Install using unreal Frontend(I dont think this will work exporting direct from the editor) use the settings:
this is so you can still use exec commands, when you run the game, once installed, tap four fingers onto the screen, then type "cloudgamefight" which should increment the Exp: and Gold variables, then type "cloudgamesave 1" exit the app and goto settings>Icloud>Storage & Backup>Manage Storage on your idevice, your game save will be in the Documents & Data under the folder name you used.
I still need to solve why there isn't an app icon showing up in Icloud Documents & Data, but I have tested this on my Iphone5 and Ipad and the data syncs up between them nicely.
let me know if you hit any problems, I may have left something out....
[*]Step One:(optional, you probably have done this already) Set your Apple developer account up with certificate.
[*]step Two: Once your Apple developer account is setup, goto the Provisioning Potal and create an App ID.

[*]Step Three: Open up the App Id you just created and check Enable for ICloud.

you will get this message that basically states, if you already have a provison setup, you must delete and regenerate it to use the new App Id with Icloud enabled.

create Provision using your new AppID, download the Provision and use with the iOS Configuration Wizard(Lots of information on the UDN about this):

[*]Step four: Open UDK\UDK-2012-10\UDKGame\Config\Iphone\IPhoneEngine.ini, search for [PlatformInterface], now input the entries in bold below into your[PlatformInterface] section, I also placed it in IPhone-UDKEngine.ini just to be sure.
CloudStorageInterfaceClassName=IPhoneDrv.CloudStor ageIPhone
CloudStorageInterfaceFallbackClassName=IPhoneDrv.C loudStorageBaseIPhone
LocalStorageInterfaceClassName=IPhoneDrv.LocalStor ageIPhone
Code:
[PlatformInterface] CloudStorageInterfaceClassName=IPhoneDrv.CloudStorageIPhone CloudStorageInterfaceFallbackClassName=IPhoneDrv.CloudStorageBaseIPhone LocalStorageInterfaceClassName=IPhoneDrv.LocalStorageIPhone FacebookIntegrationClassName=IPhoneDrv.FacebookIPhone InGameAdManagerClassName=IPhoneDrv.IPhoneAdManager MicroTransactionInterfaceClassName=IPhoneDrv.MicroTransactionIPhone AnalyticEventsInterfaceClassName=IPhoneDrv.FlurryAnalyticsIPhone TwitterIntegrationClassName=IPhoneDrv.TwitterIntegrationIPhone
This assigns the correct interface for ICloud storage, by default it was setup to use only local storage(for storage emulation), now the function "Cloud = class'PlatformInterfaceBase'.static.GetCloudStorag eInterface();" returns CloudStorageIPhone_0 instead of CloudStorageBase_0. (Only on the device)
[*]Step Five: Use Epics example CloudPC.uc to incorporate cloud storage into your current project, or use cloudgame.uc as a test game.
[*]Step Six: Next we have to create an entitlements file to access the ubiquitous storage container, You can use XCode to generate one like I did, or If you haven't got a Mac, Just open notepad(or any plain text editor) and paste the XML doc below, fill in your own information, TeamID(can be found on Apple Developer account), Company name, and Game name.
Paying close attention to the <key>com.apple.developer.ubiquity-container-identifiers</key> the last piece "Cloud Save Folder name" is what the Storage Folder on the cloud is called:
Code:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>application-identifier</key> <string>"YourTeamID".com."CompanyName"."GameName"</string> <key>com.apple.developer.ubiquity-container-identifiers</key> <array> <string>"YourTeamID".com."CompanyName"."Cloud Save Folder name"</string> </array> <key>com.apple.developer.ubiquity-kvstore-identifier</key> <string>"YourTeamID".com."CompanyName"."GameName"</string> <key>keychain-access-groups</key> <array> <string>"YourTeamID".com."CompanyName"."GameName"</string> </array> </dict> </plist>
That should be it, I'm sure theres lots of little things to still work out, but the basic functionality is there.
[*]Step Seven: Install using unreal Frontend(I dont think this will work exporting direct from the editor) use the settings:
Code:
UDKGame->IPhone->Test_32->ReleaseScript->Shipping_32
I still need to solve why there isn't an app icon showing up in Icloud Documents & Data, but I have tested this on my Iphone5 and Ipad and the data syncs up between them nicely.
let me know if you hit any problems, I may have left something out....
Comment