New GameSave API fails, "Couldn’t communicate with a helper application."

I've been playing with the new GameSave API and cannot get it to work.

I followed the 3-step instructions from the Developer video. Step 2, "Next, login to your Apple developer account and include this entitlement in the provisioning profile for your game." seems to be unnecessary, as Xcode set this for you when you do step 1 "First add the iCloud entitlement to your game."

Running the app on my device and tapping "Load" starts the sync, then fails with the error "Couldn’t communicate with a helper application." I have no idea how to troubleshoot this. Every other time I've used CloudKit it has Just Worked™.

Halp‽

Here is my example app:

import Foundation
import SwiftUI
import GameSave


@main struct GameSaveTestApp: App {
  var body: some Scene {
    WindowGroup {
      GameView()
    }
  }
}


struct GameView: View {
  @State private var loader = GameLoader()

  var body: some View {
    List {
      Button("Load") { loader.load() }
      Button("Finish sync") { Task { try? await loader.finish() } }
    }
  }
}


@Observable class GameLoader {
  var directory: GameSaveSyncedDirectory?

  func stateChanged() {
    let newState = withObservationTracking {
      directory?.state
    } onChange: {
      Task { @MainActor [weak self] in self?.stateChanged() }
    }

    print("State changed to \(newState?.description ?? "nil")")

    switch newState {
      case .error(let error):
        print("ERROR: \(error.localizedDescription)")
      default: _ = 0 // NOOP
    }
  }

  func load() {
    print("Opening gamesave directory")
    directory = GameSaveSyncedDirectory.openDirectory()
    stateChanged()
  }

  func finish() async throws {
    print("finishing syncing")
    await directory?.finishSyncing()
  }
}

Sorry you're running into this issue.

Couple questions:

  • What platform are you targeting?
  • Could you attach a sysdiagnose, report via feedback assistant and share the feedback number here?

Thanks!

What platform are you targeting?

That output is from my phone, but I develop for phone, tablet and desktop and planned on using this on all of them.

Could you attach a sysdiagnose, report via feedback assistant and share the feedback number here?

FB19592652

I hope I did that right, I've never directly pulled a sysdiagnose before ^^

@Tekkub please attach a sysdiagnose to FB19592652 per @Apple Designer's request.

Mentioning in case that request got lost under comments.

@Tekkub thanks for the sysdiagnose. Sorry for the back and forth here, would you be able to attach your application/project to the FeedBack report? I'm trying to get an understanding of what entitlements are being used.

Sure thing, I'll add that to the feedback. As far as I am aware, the only entitlement I'm using is iCloud documents, which is wired up to an iCloud container.

The good news: I don't get the error on Mac, so I've been able to play around with things a bit more there. The project I'm attaching is a tiny bit more complicated now, but the base code I used for the example is still there.

I think this has been fixed in iOS 26 beta 9. The first time I ran it gave me an error saying it couldn't talk to my iCloud account, but the second time it reported back "ready" and gave me a url to save to.

Glad to hear it re: beta 9!

New GameSave API fails, "Couldn’t communicate with a helper application."
 
 
Q