#I need help with iOS cloud saving using the Essential Kit v3.

1 messages · Page 1 of 1 (latest)

fast pawn
#

Currently, I’ve implemented cloud saving and synchronization for both Android and iOS, and during testing, an issue occurred on iOS.

The first test method presented in the manual works correctly:

Testing data post re-install

Call Synchronize on first launch, and it prompts a login if required to connect the user profile.

Set a key value and note the details.

Wait for synchronization or call Synchronize manually.

Uninstall the app.

Reinstall the app.

Call Synchronize.

Get the key value set in step 2.

Check that the values in steps 2 and 7 match.

When I follow this procedure on iPhone, the cloud data is saved and loaded correctly.

However, the issue occurs with the second test case:
Data existence on other devices
When testing between iPhone A and iPhone B (or using an iPad), all devices are:

Logged into the same Apple ID

Using the same save key

Running the same game version

Using the same cloud container

Despite this, each device retains its own cloud data and they do not synchronize with each other.
Each device, when tested using the first method, appears to save and load separate cloud data.
There’s no data merging or overwriting between devices.

I’ve spent about a week trying to resolve this issue through testing, but have not succeeded.
That’s how I found this place and decided to ask for help.

Would you be able to assist me in resolving this case?

rugged lodge
#

Did you try our CloudServicesDemo scene or your own implementation for the above test case?

fast pawn
fast pawn
fast pawn
rugged lodge
#

No, it shouldn't depend on the size of the saved data as long as you are within in the platform limits (iOS - 1MB, Android - 3MB).
Saving byte array on iOS similar to other data types as native os api's already provide a direct method. Let us do a check and see.

fast pawn
# rugged lodge No, it shouldn't depend on the size of the saved data as long as you are within ...

As a result of recent testing, we found that splitting a byteArray into 10 separate strings and saving them under different keys in the cloud successfully enabled cross-device synchronization. When loading the data, we simply retrieve the 10 string values and merge them back into a single byteArray.

In contrast, when attempting to save the data as a single byteArray (approximately 400KB in size), cross-device synchronization did not occur.
This suggests that despite being under the platform limit (1MB), the iOS cloud system’s internal handling—or potentially a bug—prevents proper synchronization when using a single byteArray.

In conclusion, although it’s a workaround, splitting the data into strings currently provides a reliable solution for enabling cross-device cloud synchronization.

rugged lodge
#

Can you try making it network safe by converting the byte array to base64 and try once?

fast pawn
#

In my case, I’m using it in combination with Easy Save 3.
I convert the Easy Save 3 file to a byte array, then convert that byte array to a string for storage.