通过GameKit将游戏数据保存到iCloud中

我正在尝试通过下一个代码将游戏数据保存到iCloud:

GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer]; [localPlayer saveGameData:[NSData dataWithBytes:rawData->data() length:rawData->size()] withName:[NSString stringWithUTF8String:fileName.c_str()] completionHandler:^(GKSavedGame *savedGame, NSError *error) { if (error == nil) { DebugLog(@"Snapshot successfully saved"); } else { DebugLog(@"saveSnapshot error: %@", error.description); } }]; 

但是收到错误消息: The requested operation could not be completed because you are not signed in to iCloud

我试过在iOS模拟器和设备上做到这一点,但没有成功。
并尝试使用测试苹果ID,开发苹果ID,新苹果ID,但也没有成功。
用户在iOS设置中登录iCloud并登录到Game Center。

有什么建议么?

我有一个类似的问题。 在我的设备设置上使用我的iCloud帐户登录后,仍然显示完全相同的错误,并且仅当我为帐户启用iCloud Drive时才会停止,否则它将永远无法运行。

因此,看起来用户必须使用iCloud Drive,否则GKSavedGame将无法运行。 据我所知,Apple文档从未提及过。

  1. 先决条件:

    • 您必须拥有Apple ID。
    • 检查您是否设置了function。

      function> iCloud> ON
      (您必须选中iCloud Documents 。)

      function>游戏中心>开启

  2. 转到iCloud并创建您的帐户

    • 在您的计算机浏览器中,只需使用您的Apple ID登录并接受条款和条件。 像这里: https : //www.icloud.com/#settings
  3. 现在,您可以在设置> iCloud中使用您的设备或模拟器登录。