¿Cómo recibir notificaciones de CloudKit sobre los cambios realizados en el registro compartido conmigo?

Tengo dos cuentas de icloud (A yB) en dos dispositivos diferentes. De uno de ellos (A) Comparto ckrecord a otro (B) Me gusta esto:

let controller = UICloudSharingController { controller, preparationCompletionHandler in

    let share = CKShare(rootRecord: record)
    share[CKShareTitleKey] = "title" as CKRecordValue

    share[CKShareTypeKey] = "pl.blueworld.fieldservice" as CKRecordValue
    share.publicPermission = .readWrite

    let modifyOperation = CKModifyRecordsOperation(recordsToSave: [record, share], recordIDsToDelete: nil)
    modifyOperation.savePolicy = .ifServerRecordUnchanged
    modifyOperation.perRecordCompletionBlock = { record, error in
        print(error?.localizedDescription ?? "")
    }

    modifyOperation.modifyRecordsCompletionBlock = { records, recordIds, error in

        print(share.url)
        preparationCompletionHandler(share, CloudAssistant.shared.container, error)
    }

    CloudAssistant.shared.container.privateCloudDatabase.add(modifyOperation)
}

controller.delegate = self

UIViewController.top()?.present(controller, animated: true)

Cuando segundo dispositivo (B) acepté el recurso compartido de CloudKit. Obtuve el registro y me suscribo a los cambios:

func application(_ application: UIApplication, userDidAcceptCloudKitShareWith cloudKitShareMetadata: CKShareMetadata) {

    let acceptSharesOperation = CKAcceptSharesOperation(shareMetadatas: [cloudKitShareMetadata])
    acceptSharesOperation.perShareCompletionBlock = { metadata, share, error in

        if let error = error {
            UIAlertController.show(withMessage: error.localizedDescription)
        } else {

            let operation = CKFetchRecordsOperation(recordIDs: [cloudKitShareMetadata.rootRecordID])
            operation.perRecordCompletionBlock = { record, _, error in

                if let error = error {
                    UIAlertController.show(withMessage: error.localizedDescription)
                } else if let record = record {
                    CloudAssistant.shared.save(records: [record], recordIDsToDelete: [])

                    let options: CKQuerySubscriptionOptions = [.firesOnRecordCreation, .firesOnRecordUpdate, .firesOnRecordDeletion]
                    let territorySubscription = CKQuerySubscription(recordType: "Territory", predicate: NSPredicate(value: true), options: options)

                    let notificationInfo = CKNotificationInfo()
                    notificationInfo.shouldBadge = false
                    notificationInfo.shouldSendContentAvailable = true

                    territorySubscription.notificationInfo = notificationInfo

                    CloudAssistant.shared.sharedDatabase?.save(territorySubscription) { _, _ in }
                }
            }

            CloudAssistant.shared.container.sharedCloudDatabase.add(operation)
        }
    }
    acceptSharesOperation.qualityOfService = .userInteractive
    CKContainer(identifier: cloudKitShareMetadata.containerIdentifier).add(acceptSharesOperation)
}

Ahora desde dispositivoA I con éxito (Estoy seguro de eso, los cambios se guardan en iCloud) realice una actualización en un registro compartido con otros. Pero dispositivoB no sabe sobre eso, a menos que busque el registro manualmente una vez más.

Pero desde el otro lado, funciona bastante bien.

Si realizo con éxito una actualización en un registro compartido conmigo (en el dispositivoB) luego dispositivoA Mágicamente recibe una notificación sobre el cambio y todo está bien. ¿Qué hace la diferencia?

¿Cómo suscribirse a los cambios en un registro compartido conmigo?

P.D., cuando pueda, comenzaré una partida de 200 o incluso más para alguien que me ayude con esto.

iOS 11, Swift 4, Xcode 9

Respuestas a la pregunta(1)

Su respuesta a la pregunta