Issues during CloudKit record sharing

I am trying to implement record sharing in my project, but when I try to copy the link on the UICloudSharingController, the sheet closes and the link doesn't get copied.

My CloudKitManager function:

public func shareTeam(_ team: Team) -> AnyPublisher<CKShare, Error> {
        Future { [weak self] promise in
            guard let self = self else {
                promise(.failure(CloudKitError.unknown))
                return
            }
            
            let record = team.toCKRecord()
            let share = CKShare(rootRecord: record)
            
            share[CKShare.SystemFieldKey.title] = "Join \(team.name)" as CKRecordValue
            share.publicPermission = .readWrite

            let operation = CKModifyRecordsOperation(recordsToSave: [record, share], recordIDsToDelete: nil)
            operation.savePolicy = .ifServerRecordUnchanged
            operation.qualityOfService = .userInitiated
            operation.modifyRecordsResultBlock = { result in
                switch result {
                case .success:
                    promise(.success(share))
                case .failure(let error):
                    promise(.failure(error))
                }
            }
            self.privateDatabase.add(operation)
        }
        .eraseToAnyPublisher()
    }

ViewModel function:

func shareTeam() {
        guard let selectedTeam = selectedTeam else { return }
        
        CloudKitManager.shared.shareTeam(selectedTeam)
            .receive(on: DispatchQueue.main)
            .sink { [weak self] completion in
                switch completion {
                case .finished:
                    break
                case .failure(let error):
                    self?.didError = true
                    self?.error = error
                }
            } receiveValue: { share in
                let sharePresenter = SharePresenter(
                    share: share,
                    container: CloudKitManager.shared.container,
                    teamName: selectedTeam.name,
                    rootRecord: selectedTeam.toCKRecord()
                )
                
                sharePresenter.presentShareSheet()
            }
            .store(in: &cancellables)
    }

Your code snippet doesn't quite demo how you use UICloudSharingController...

Does the issue reproduce with the Apple Sample code below? If it does, please share the exact steps to reproduce the issue. I'd take a closer look.

Best,
——
Ziqiao Chen
 Worldwide Developer Relations.

Issues during CloudKit record sharing
 
 
Q